Linux部屬Vue專案遇到的問題

執行指令npm i

明明可以用npm&node指令,但會出現sh: node: command not found的錯誤,令人費解

shell

> phantomjs-prebuilt@2.1.16 install /home/david.chou/rmc-remocloud-vue/node_modu les/phantomjs-prebuilt
node install.js
> 

sh: node: command not found
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/wat chpack/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@ 2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"} )
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/wa tchpack-chokidar2/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@ 1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64" })
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules/fse vents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@ 1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"} )

npm ERR! code ELIFECYCLE
npm ERR! syscall spawn
npm ERR! file sh
npm ERR! errno ENOENT
npm ERR! phantomjs-prebuilt@2.1.16 install: `node install.js`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the phantomjs-prebuilt@2.1.16 install script.
npm ERR! This is probably not a problem with npm. There is likely additional log ging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2023-11-29T02_16_20_920Z-debug.log

原因是nvm不能用root去使用

https://github.com/nvm-sh/nvm/issues/2164

在user shell執行指令npm i

出現permission相關的錯誤

因為當時專案是用root執行git clone,所以專案權限在root上,因為問題1,所以要更改權限

sudo chown -R $USER /usr/local/lib/node_modules

一樣問題:

https://stackoverflow.com/questions/48910876/error-eacces-permission-denied-access-usr-local-lib-node-modules

執行指令npm run build

一些套件依賴沒有裝到,node_modules/node-sass有缺少的檔案

shell

ERROR in ./~/css-loader?{"minimize":true,"sourceMap":true}!./~/vue-loader/lib/style-compiler?{"id":"data-v-7abf5784","scoped":true,"hasInlineConfig":false}!./~/sass-loader/dist/cjs.js?{"sourceMap":true}!./~/vue-loader/lib/selector.js?type=styles&index=0!./~/vue-dynamic-dropdown/dropdown.vue
Module build failed: Error: ENOENT: no such file or directory, scandir '/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/vendor'
at Object.readdirSync (fs.js:981:3)
at Object.getInstalledBinaries (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/extensions.js:133:13)
at foundBinariesList (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/errors.js:20:15)
at foundBinaries (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/errors.js:15:5)
at Object.module.exports.missingBinary (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/errors.js:45:5)
at module.exports (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/binding.js:15:30)
at Object.<anonymous> (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/index.js:14:35)
at Module._compile (internal/modules/cjs/loader.js:1236:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1257:10)
at Module.load (internal/modules/cjs/loader.js:1085:32)
at Function.Module._load (internal/modules/cjs/loader.js:950:14)
at Module.require (internal/modules/cjs/loader.js:1125:19)
at require (internal/modules/cjs/helpers.js:75:18)
at getDefaultSassImpl (/home/david.chou/rmc-remocloud-vue/node_modules/sass-loader/dist/index.js:198:10)
at Object.loader (/home/david.chou/rmc-remocloud-vue/node_modules/sass-loader/dist/index.js:80:29)
@ ./~/extract-text-webpack-plugin/loader.js?{"omit":1,"remove":true}!./~/vue-style-loader!./~/css-loader?{"minimize":true,"sourceMap":true}!./~/vue-loader/lib/style-compiler?{"id":"data-v-7abf5784","scoped":true,"hasInlineConfig":false}!./~/sass-loader/dist/cjs.js?{"sourceMap":true}!./~/vue-loader/lib/selector.js?type=styles&index=0!./~/vue-dynamic-dropdown/dropdown.vue 4:14-314
@ ./~/vue-dynamic-dropdown/dropdown.vue
@ ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/components/views/AdminInfo.vue
@ ./src/components/views/AdminInfo.vue
@ ./src/routes.js
@ ./src/main.js
@ multi babel-polyfill ./src/main.js

ERROR in ./~/extract-text-webpack-plugin/loader.js?{"omit":1,"remove":true}!./~/vue-style-loader!./~/css-loader?{"minimize":true,"sourceMap":true}!./~/vue-loader/lib/style-compiler?{"id":"data-v-7abf5784","scoped":true,"hasInlineConfig":false}!./~/sass-loader/dist/cjs.js?{"sourceMap":true}!./~/vue-loader/lib/selector.js?type=styles&index=0!./~/vue-dynamic-dropdown/dropdown.vue
Module build failed: ModuleBuildError: Module build failed: Error: ENOENT: no such file or directory, scandir '/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/vendor'
at Object.readdirSync (fs.js:981:3)
at Object.getInstalledBinaries (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/extensions.js:133:13)
at foundBinariesList (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/errors.js:20:15)
at foundBinaries (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/errors.js:15:5)
at Object.module.exports.missingBinary (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/errors.js:45:5)
at module.exports (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/binding.js:15:30)
at Object.<anonymous> (/home/david.chou/rmc-remocloud-vue/node_modules/node-sass/lib/index.js:14:35)
at Module._compile (internal/modules/cjs/loader.js:1236:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1257:10)
at Module.load (internal/modules/cjs/loader.js:1085:32)
at Function.Module._load (internal/modules/cjs/loader.js:950:14)
at Module.require (internal/modules/cjs/loader.js:1125:19)
at require (internal/modules/cjs/helpers.js:75:18)
at getDefaultSassImpl (/home/david.chou/rmc-remocloud-vue/node_modules/sass-loader/dist/index.js:198:10)
at Object.loader (/home/david.chou/rmc-remocloud-vue/node_modules/sass-loader/dist/index.js:80:29)
at /home/david.chou/rmc-remocloud-vue/node_modules/webpack/lib/NormalModule.js:192:19
at /home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:364:11
at /home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:230:18
at runSyncOrAsync (/home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:143:3)
at iterateNormalLoaders (/home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:229:2)
at iterateNormalLoaders (/home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:218:10)
at /home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:233:3
at Object.context.callback (/home/david.chou/rmc-remocloud-vue/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
at Object.module.exports (/home/david.chou/rmc-remocloud-vue/node_modules/vue-loader/lib/selector.js:18:8)

ERROR in static/js/vendor.1f413231da4d9fddaffa.1701245673085.js from UglifyJs
Unexpected token: name (p) [./~/vue-element-loading/lib/vue-element-loading.min.js:6,437][static/js/vendor.1f413231da4d9fddaffa.1701245673085.js:4669,394]

參考資料: https://stackoverflow.com/questions/49651221/npm-enoent-no-such-file-or-directory-rename

rm -rf node_modules & rm package-lock.json

之後再npm i 就可以了

使用git相關指令

shell

[root@rmc-tokyo-sit rmc-remocloud-vue]# git pull origin dev
fatal: unable to access 'https://gitlab.cipherlab.com.tw/rmc-dev/rmc-remocloud-vue.git/': Peer's Certificate issuer is not recognized.

ssl相關的問題

暫時解決 使用指令時不要驗證ssl

git -c http.sslVerify=false pull origin dev

git -c http.sslVerify=false clone -b dev https://gitlab.cipherlab.com.tw/rmc-dev/rmc-remocloud-vue.git