【问题标题】:npm install getting Cannot read property 'name' of null errornpm install 获取无法读取 null 错误的属性“名称”
【发布时间】:2022-02-21 04:47:25
【问题描述】:

不太清楚是什么导致了这个错误,因为npm install 在其他计算机上工作正常。

NPM 和 Node 版本:

C:\Users\Work>npm -v
8.3.2

C:\Users\Work>node -v
v14.16.1

这是我的日志文件:

1045 timing metavuln:calculate:security-advisory:laravel-mix:BsF+UACSDcae51QqbAQxlxsAnxFUZFgrvDV6vu6cKmFKYbSYdVVZnALm0hmDv4dJ/hBksQh4SoHNXqfEVpN6eg== Completed in 4ms
1046 verbose stack TypeError: Cannot read property 'name' of null
1046 verbose stack     at npa (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-package-arg\npa.js:25:18)
1046 verbose stack     at FetcherBase.get (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\fetcher.js:486:16)
1046 verbose stack     at Object.packument (C:\Program Files\nodejs\node_modules\npm\node_modules\pacote\lib\index.js:18:30)
1046 verbose stack     at Calculator.[packument] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\metavuln-calculator\lib\index.js:105:22)
1046 verbose stack     at Calculator.[calculate] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\metavuln-calculator\lib\index.js:56:23)
1046 verbose stack     at Calculator.calculate (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\metavuln-calculator\lib\index.js:43:31)
1046 verbose stack     at Map.[init] (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\audit-report.js:173:36)
1046 verbose stack     at async Map.run (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\arborist\lib\audit-report.js:108:7)
1047 verbose cwd D:\code\click-webplanner
1048 verbose Windows_NT 10.0.19042
1049 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
1050 verbose node v14.16.1
1051 verbose npm  v7.20.3
1052 error Cannot read property 'name' of null
1053 verbose exit 1

这是我的作曲家文件:

{
  "private": true,
  "scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },
  "devDependencies": {
    "axios": "^0.16.2",
    "bootstrap-sass": "^3.4.0",
    "cross-env": "^5.0.1",
    "deepmerge": "^4.2.2",
    "fibers": "^5.0.0",
    "less": "^3.9.0",
    "less-loader": "^4.1.0",
    "lodash": "^4.17.4",
    "sass": "^1.26.8",
    "sass-loader": "^8.0.2",
    "save": "^2.3.3",
    "stylus": "^0.54.5",
    "stylus-loader": "^3.0.2",
    "vue": "^2.6.3",
    "vue-template-compiler": "^2.6.3",
    "webpack": "^4.43.0"
  },
  "dependencies": {
    "@babel/core": "^7.3.4",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/preset-env": "^7.4.4",
    "@tailwindcss/postcss7-compat": "^2.0.2",
    "ajv": "^6.8.1",
    "autoprefixer": "^9.8.6",
    "axios-cancel": "^0.2.2",
    "date-fns": "^2.0.0-alpha.27",
    "dayjs": "^1.8.28",
    "flatpickr": "^4.5.2",
    "highlight.js": "^10.1.2",
    "laravel-echo": "^1.5.3",
    "laravel-mix": "^5.0.4",
    "marked": "latest",
    "moment": "^2.29.1",
    "npm": "^6.9.0",
    "postcss": "^7.0.35",
    "prismjs": "^1.23.0",
    "prosemirror-utils": "^0.6.7",
    "pusher-js": "^4.4.0",
    "sweetalert": "^2.1.0",
    "sweetalert2": "^7.33.1",
    "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.2",
    "tiptap": "^0.19.0",
    "tiptap-extensions": "^0.21.0",
    "vue-bulma-datepicker": "^1.3.6",
    "vue-fuse": "^3.0.0",
    "vue-select": "^3.1.0",
    "vue-select2": "^0.2.6",
    "vue-sidebar-menu": "^3.7.0",
    "vue2-editor": "^2.6.6",
    "vuedraggable": "^2.17.0",
    "vuetify": "^2.2.33",
    "vuetify-loader": "^1.4.4"
  }
}

【问题讨论】:

  • 我开始遇到和你一样的错误。同样npa.js 抛出 TypeError。根据我所看到的,我假设您也在使用 Laravel。不知道发生了什么,因为我实际上并没有对我的 NPM packages.json 进行任何更改。我正在使用 node v16.13.0 和 npm v8.1.0 所以它似乎与版本无关
  • 嘿,尝试从依赖项中删除 npm 然后 1. 删除 package-lock.json 和节点模块文件夹 2. 再次运行 npm install。

标签: javascript node.js npm


【解决方案1】:

您使用的npm 版本出现此错误:v8.3.2 以及您传递模块版本"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.2" 的方式

如果您删除此库,将看到错误将停止发生。

要解决这个问题,您可以将tailwindcss 版本更改为^2.0.1-compat

"tailwindcss": "^2.0.1-compat"

或者升级或降级你的 npm 版本:

尝试将您的 node.js 和 npm 版本降级为其他 lts 版本,例如 lts/fermium(节点 v14.19.0,npm v6.14.16)或升级到稳定版本(节点 v17.5.0,npm @987654333 @)

此外,节点版本为 v14.16.1 的 npm 的推荐版本是 6.14.12,而不是 8.3.2,正如我们在 releases table 中看到的那样。

当您更改 npm 版本时,您将需要:

  1. 删除node_modules目录和package-lock.json文件。
  2. 使用npm install重新安装模块

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-27
    • 1970-01-01
    • 2017-04-30
    • 2021-10-26
    • 2012-05-31
    • 1970-01-01
    • 2020-08-31
    • 2021-10-14
    相关资源
    最近更新 更多