# vue 遇到的各種問題總結
### 解決 無法 npm run electron:build
* 版本相容性問題
<font color="blue">node.js 版本要16.0以下 (改版到 v15.14.0)</font>
參考文章 : https://github.com/electron-userland/electron-builder/issues/5668
為了切換版本可以下載套件,<font color="red">nvm-windows</font>,我下載 1.1.3 版本
``
npm install nvm-windows
``
語法 :100: :
` nvm install <version>` (下載 node.js 的版本)
` nvm list` (查看現有的 node.js 版本有哪些)
` nvm use <version>` (使用現有的 node.js 版本)
* 無法使用 npm
參考文章 : https://www.cnblogs.com/jaxu/p/13904018.html
<font color="blue">尋找相對應的 node.js 版本,解壓縮以後照搬 node_modules 到 nvm 路徑底下的對應版本 (ex.我是要載 v.15.14.0)</font>
下載先前的 node.js 版本 : https://nodejs.org/zh-cn/download/releases/

解壓縮以後,基本上我是把 node_modules 以及有關 npm 的檔案都複製過來了
再用 `npm -v` 如果有出現版本號就表示安裝成功
* 中文路徑的問題
參考文章 : https://blog.csdn.net/kyq0417/article/details/111266776
* vs code 切換 npm 版本後無法使用 npm 語法

1. 右鍵系統管理員打開 <font color="red">PowerShell ISE</font>
2. 輸入 `get-executionpolicy`
看看目前的執行原則是什麼。這時候應該會看到Restricted(因系統預設為這個)
3. 輸入 `set-executionpolicy remotesigned`
執行更改為remotesigned,在執行時會跳出警告視窗通知你要是否要改變,按下"是"

### build linux 執行檔 遇到錯誤
```
{
"name": "vue-electron",
"version": "0.1.0",
"private": true,
"author": "haha861924 <qq861924@gmail.com>",
"homepage": "https://github.com/owner/project#readme",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "eslint --ext .js,.vue src --fix",
"electron:build": "vue-cli-service electron:build",
"electron:serve": "vue-cli-service electron:serve",
"postinstall": "electron-builder install-app-deps",
"postuninstall": "electron-builder install-app-deps",
"build_linux": "electron-packager . vue-electron --platform=linux --arch=x64",
"build_arm": "electron-packager . vue-electron --platform=linux --arch=armv7l",
"dist:linux": "electron-builder --linux"
},
"main": "dist_electron\\bundled\\background.js",
"dependencies": {
"axios": "^0.21.1",
"core-js": "^3.6.5",
"crypto": "^1.0.1",
"crypto-js": "^4.0.0",
"dayjs": "^1.10.4",
"electron-packager": "^15.2.0",
"electron-store": "^8.0.0",
"eslint-plugin-vuefix": "^0.2.1",
"path": "^0.12.7",
"socket.io-client": "^3.1.0",
"systeminformation": "^4.34.20",
"vue": "^2.6.11",
"vue-router": "^3.2.0",
"vuetify": "^2.4.9",
"vuex": "^3.4.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-standard": "^5.1.2",
"babel-eslint": "^10.1.0",
"electron": "^11.0.0",
"electron-devtools-installer": "^3.1.0",
"eslint": "^6.8.0",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.0",
"eslint-plugin-vue": "^6.2.2",
"mini-css-extract-plugin": "^0.9.0",
"prettier": "^2.2.1",
"sass": "^1.32.0",
"sass-loader": "^10.0.0",
"vue-cli-plugin-electron-builder": "~2.0.0-rc.6",
"vue-cli-plugin-vuetify": "~2.3.1",
"vue-template-compiler": "^2.6.11",
"vuetify-loader": "^1.7.0",
"electron-builder": "^22.11.7"
},
"linux": {
"target": "deb"
},
"deb": {},
"build": {
"productName": "vue-electron",
"appId": "com.vue-electron.app",
"directories": {
"output": "build"
},
"linux": {
"target": "deb"
}
}
}
```
結論 : electron-build 連線失敗