我有一个Vue应用程序,我正在尝试使用npm run start
运行,但是当我从PowerShell或VS Code终端运行该命令时,会出现以下错误:
> economyapp@0.1.0 start C:_codemyapp > npx vue-cli-service serve npm ERR! code E404 npm ERR! 404 Not Found - GET https://registry.npmjs.org/vue-cli-service - Not found npm ERR! 404 npm ERR! 404 'vue-cli-service@latest' is not in the npm registry. npm ERR! 404 You should bug the author to publish it (or use the name yourself!) npm ERR! 404 npm ERR! 404 Note that you can also install from a npm ERR! 404 tarball, folder, http url, or git url. npm ERR! A complete log of this run can be found in: npm ERR! C:UsersUserAppDataRoamingnpm-cache_logs2020-11-28T17_22_02_307Z-debug.log Install for [ 'vue-cli-service@latest' ] failed with code 1 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! economyapp@0.1.0 start: `npx vue-cli-service serve` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the economyapp@0.1.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:UsersUserAppDataRoamingnpm-cache_logs2020-11-28T17_22_02_401Z-debug.log
当我从WSL中运行npm run start
命令时,它可以正常工作,但是当我对代码进行更改时,服务器不会热重载。我尝试过卸载和重新安装Vue CLI,并运行npm install
。
这是我的package.json文件:
{ "name": "myapp", "version": "0.1.0", "private": true, "scripts": { "start": "npx vue-cli-service serve", "build": "npx vue-cli-service build", "test": "npx vue-cli-service test:unit", "lint": "npx vue-cli-service lint", "serve": "npx vue-cli-service serve" }, "dependencies": { "axios": "^0.21.0", "core-js": "^3.4.3", "lodash": "^4.17.15", "moment": "^2.24.0", "register-service-worker": "^1.6.2", "store2": "^2.11.1", "vue": "^3.0.0", "vue-router": "^3.1.3", "vuex": "^3.1.2" }, "devDependencies": { "@types/jest": "^24.0.19", "@typescript-eslint/eslint-plugin": "^2.28.0", "@typescript-eslint/parser": "^2.28.0", "@vue/cli-plugin-babel": "^4.1.0", "@vue/cli-plugin-eslint": "^4.1.0", "@vue/cli-plugin-pwa": "^4.1.0", "@vue/cli-plugin-router": "^4.1.0", "@vue/cli-plugin-typescript": "^4.3.1", "@vue/cli-plugin-vuex": "^4.1.0", "@vue/cli-service": "^4.2.3", "@vue/devtools": "^5.3.3", "@vue/eslint-config-prettier": "^5.0.0", "@vue/eslint-config-typescript": "^5.0.2", "@vue/test-utils": "1.0.0-beta.29", "eslint": "^6.0.0", "eslint-plugin-prettier": "^3.1.1", "eslint-plugin-vue": "^6.0.0", "lint-staged": "^9.4.3", "prettier": "^1.19.1", "typescript": "^3.8.3", "vue-template-compiler": "^2.6.10" }, "gitHooks": { "pre-commit": "lint-staged" }, "lint-staged": { "*.{js,vue,ts}": [ "vue-cli-service lint", "git add" ] } }
TL;DR: 运行
npm install
。vue-cli-service
由@vue/cli-service
在你的devDependencies中提供。因为你在npx
命令中没有指定包,所以如果它必须在注册表中查找,它会失败。没有npx
,你的npm
脚本将在node_modules/.bin
中查找vue-cli-service
。你可以从npm
脚本中移除npx
,你应该会得到与现在相同的结果。npx
找不到vue-cli-service
这个事实表明你还没有运行npm install
。运行它,你的npm
脚本应该可以正常工作。如果不运行npm install
,一旦修复了这个问题,你肯定会遇到其他问题。如果出于某种原因,你希望
npm
脚本在不运行npm install
的情况下工作,你可以告诉npx
在注册表中找到二进制文件的位置。将npm
脚本中的npx vue-cli-service
改为npx -p @vue/cli-service vue-cli-service
,这样应该可以解决这个问题。但你肯定会遇到其他问题。无论如何,你都应该运行npm install
。但要真正找到问题的根源,你需要弄清楚为什么在WSL和非WSL环境中存在差异。我猜测你在某个全局位置安装了
@vue/cli-service
,只有WSL在你的PATH
中找到它,但这只是一个猜测。