删除 pacakge.json 和 node_modules 后 npm install 失败
Posted
技术标签:
【中文标题】删除 pacakge.json 和 node_modules 后 npm install 失败【英文标题】:npm install fails after deleting pacakge.json and node_modules 【发布时间】:2021-08-12 05:08:07 【问题描述】:我正在尝试在我的项目上运行npm install
命令,但我不断收到一个我不明白的错误,请我帮助我找到错误的根源。
我的 package.json
"devDependencies":
"babel-core": "^6.25.0",
"babel-loader": "^7.1.1",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.23.0",
"babel-preset-env": "^1.6.0",
"serverless-bundle": "^1.3.3",
"serverless-pseudo-parameters": "^2.5.0",
"webpack": "^4.35.2"
,
"dependencies":
"@middy/core": "^2.2.0",
"@middy/http-cors": "^2.2.0",
"@middy/http-error-handler": "^2.2.0",
"@middy/http-event-normalizer": "^2.2.0",
"@middy/http-json-body-parser": "^2.2.0",
"@middy/validator": "^2.2.0",
"aws-sdk": "^2.639.0",
"decimal.js": "^10.2.1",
"http-errors": "^1.8.0"
我不断收到的错误:
npm ERR! code 1
npm ERR! path PROJECT_PATH/node_modules/node-sass
npm ERR! command failed
npm ERR! command sh -c node scripts/build.js
npm ERR! Building: /Users/dami/.nvm/versions/node/v16.2.0/bin/node /Users/dami/dev/capitack/capitack-backend/orderbook-service/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
npm ERR! c++ '-DNODE_GYP_MODULE_NAME=libsass' '-DUSING_UV_SHARED=1' '-DUSING_V8_SHARED=1' '-DV8_DEPRECATION_WARNINGS=1' '-DV8_DEPRECATION_WARNINGS' '-DV8_IMMINENT_DEPRECATION_WARNINGS' '-D_GLIBCXX_USE_CXX11_ABI=1' '-D_DARWIN_USE_64_BIT_INODE=1' '-D_LARGEFILE_SOURCE' '-D_FILE_OFFSET_BITS=64' '-DOPENSSL_NO_PINSHARED' '-DOPENSSL_THREADS' '-DLIBSASS_VERSION="3.5.5"' -I/Users/dami/.node-gyp/16.2.0/include/node -I/Users/dami/.node-gyp/16.2.0/src -I/Users/dami/.node-gyp/16.2.0/deps/openssl/config -I/Users/dami/.node-gyp/16.2.0/deps/openssl/openssl/include -I/Users/dami/.node-gyp/16.2.0/deps/uv/include -I/Users/dami/.node-gyp/16.2.0/deps/zlib -I/Users/dami/.node-gyp/16.2.0/deps/v8/include -I../src/libsass/include -O3 -gdwarf-2 -mmacosx-version-min=10.7 -arch x86_64 -Wall -Wendif-labels -W -Wno-unused-parameter -std=c++11 -stdlib=libc++ -fno-strict-aliasing -MMD -MF ./Release/.deps/Release/obj.target/libsass/src/libsass/src/ast.o.d.raw -c -o Release/obj.target/libsass/src/libsass/src/ast.o ../src/libsass/src/ast.cpp
我真的需要帮助来解决这个问题。
【问题讨论】:
this 有什么帮助吗? 您是否缺少构建必需品?是否有任何与 c++ 相关的编译? 我不太确定,我在这里使用的只是带有无服务器框架的 javascript 但是这个模块正在使用 node-gyp 来构建一些本机组件(使用 C++),因此可能需要安装一些其他包作为模块在您正在构建的平台上构建的先决条件为了。您在哪个平台上/为哪个平台构建以及它引入了哪个特定版本的 node-sass?就版本匹配而言,node-sass 是 a fussy one。 作为测试,只需npm install node-sass
在一个新的空文件夹中,看看你的机器是否可以构建它。
【参考方案1】:
我修复了错误,因为我使用的是节点 16>,所以我尝试使用 nvm 降级到节点 14>,它工作得很好! 感谢大家的帮助
【讨论】:
【参考方案2】:如果您使用的是基于 linux 的系统,请尝试使用 sudo 命令
sudo npm i
否则请尝试在基于 Windows 的系统中以完全优势运行它。
【讨论】:
我尝试使用 sudo 仍然得到同样的错误 在将你的 npm 版本更新到任何一个最新的稳定版本后尝试一下我希望 npm 包中有一些弃用导致错误。 我还可以看到一些 GYP ERR 错误出现,知道这意味着什么吗? 我不知道但是尝试将节点包也更新到最新的 LTS 或稳定版本这解决了 GYP ERR 参考here 使用sudo
安装包依赖项永远不是正确的答案。以上是关于删除 pacakge.json 和 node_modules 后 npm install 失败的主要内容,如果未能解决你的问题,请参考以下文章