【问题标题】:Forked VueJS app gives error on npm install分叉的 VueJS 应用程序在 npm 安装时出错
【发布时间】:2021-11-28 22:34:38
【问题描述】:

所以这家公司给了我构建一个简单的 Vue 应用程序的任务。我从他们的仓库中分叉了代码并尝试运行npm install。但它给了我在这个log file 中的几个错误。这也是我的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"
  }
}

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

  • npm 版本: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=

【问题讨论】:

  • 请指定相关的节点版本。考虑在包含错误的问题中粘贴日志的摘录,即使外部链接不可用也应该有意义
  • @EstusFlask 是的,你是对的。已编辑的问题。
  • 看起来nose-sass 构建失败。
  • 似乎 node-sass 安装错误stackoverflow.com/questions/45589179/…

标签: vue.js npm


【解决方案1】:

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

有一条消息说锁文件版本是旧的,这意味着它是用另一个版本的 NPM (v6) 创建的,这可能是由于解决的依赖关系不同而导致问题的根源。

正如the documentation 列表,不同的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,如果出现问题,请遵循 migration guidelines 用于 Dart Sass(主要是 / 语法)

【讨论】:

    猜你喜欢
    • 2018-07-10
    • 2015-03-09
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 2021-12-08
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多