fork的VueJS应用在npm安装时出现错误



所以这家公司给了我一个任务,让我构建一个简单的Vue应用程序。我从他们的回购中分叉代码,并试图运行npm install。但它给了我几个错误,这是在这个日志文件。也这是我package.json文件:

{
"name": "todo-app",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.21.1",
"core-js": "^3.6.5",
"vue": "^3.0.0",
"vue-router": "^4.0.0-0",
"vuex": "^4.0.0-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-unit-jest": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"@vue/test-utils": "^2.0.0-0",
"autoprefixer": "^9.8.6",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^7.0.0",
"jest-transform-stub": "^2.0.0",
"node-sass": "^4.12.0",
"postcss": "^7.0.36",
"sass-loader": "^8.0.2",
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.7",
"typescript": "~3.9.3",
"vue-jest": "^5.0.0-0"
}
}

如果有必要,这里有一些额外的信息:

  • npmversion:7.21.1
  • @vue/cli版本:4.5.13
  • Node版本:16.0.0

部分错误

5827 verbose stack Error: command failed
5827 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/@npmcli/promise-spawn/index.js:64:27)
5827 verbose stack     at ChildProcess.emit (node:events:365:28)
5827 verbose stack     at maybeClose (node:internal/child_process:1067:16)
5827 verbose stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
5828 verbose pkgid node-sass@4.5.3
5829 verbose cwd /home/yarkin/Documents/WEB/VueJS/todo-app
5830 verbose Linux 5.11.0-37-generic
5831 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "--saveDev" "node-sass@4.5.3"
5832 verbose node v16.0.0
5833 verbose npm  v7.21.1
5834 error code 1
5835 error path /home/yarkin/Documents/WEB/VueJS/todo-app/node_modules/node-sass
5836 error command failed
5837 error command sh -c node scripts/build.js
5838 error Building: /usr/local/bin/node /home/yarkin/Documents/WEB/VueJS/todo-app/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=

这个问题是node-sass特有的,在这个项目中,它似乎是唯一依赖于平台和Node版本的二进制依赖项。

有一个消息,锁文件版本是旧的,这意味着它是用另一个版本的NPM (v6)创建的,这可能是一个问题的来源,由于解决的依赖关系的差异。

如文档所示,不同的node-sass版本链接到不同的Node版本,"node-sass": "^4.12.0"建议项目应该在Node v12上运行,而使用的是v16。

可能的解决方案如下:

  • 为这个项目切换到Node v12(对于其他项目来说可能太旧了)并按原样运行

  • 切换到Node v14(最新的LTS版本,一般问题较少)并将node-sass更新到^4.14

  • 继续使用Node v16并将node-sass更新为^6.0

  • 继续使用Node v16,删除node-sass,取而代之的是添加与平台无关的sass,如果出现问题(主要是/语法),遵循Dart Sass的迁移指南

相关内容

最新更新