Nodejs问个问题佬们,如何禁止在执行 npm install 时把 node_modules 下某个模块的 package.json 中定义的也给下载下来了
null
Nodejs问个问题佬们,如何禁止在执行 npm install 时把 node_modules 下某个模块的 package.json 中定义的也给下载下来了
没看懂问题,如果不下载依赖就会缺失而导致项目无法跑起来。你的目的是什么呀。
+1 提问题最好带上你的需求/错误
这个是 npm 的毛病,没法改(这也就是为什么 node_models 无比巨大的原因),你可以使用 pnpm,pnpm 通过软/硬链接的方式改变了 npm 要下载无数重复依赖的方式
package.json 算是 npm 的核心了吧,所有的包都依赖这个的
你是说依赖项会在机器上保存很多份?这个是正常的,npm 就是这个吊样子,换 pnpm,yarn 等
虽然没说清楚到底是什么问题,盲猜 npm 上面下的包需要改。
这种情况推荐 patch-package: https://www.npmjs.com/package/patch-package
自己写个,pre-install & install
问题解决了佬们, 我自定义的 npm 模块的 package.json 文件里多出了多余的包
项目引用了我自定义的 npm 包结果就把多余的包下载下来了
排查了几个小时发现的
解决了佬 是个低级错误加上我知识面不够宽造成的
解决了大佬
解决了大佬
解决了大佬
解决了大佬
解决了大佬
在 Node.js 中,npm install
命令会根据项目的 package.json
文件下载并安装所有依赖。如果你想在安装依赖时排除某个特定的模块,可以通过一些变通的方法来实现。最直接的方法之一是在全局范围内安装该模块,或者通过修改 npm
的配置来避免下载某些模块。
然而,npm
本身并不直接支持通过 package.json
排除某些模块的安装。但你可以使用 npmignore
文件来忽略文件,而不是模块。一个可能的解决方案是使用 npm
的 postinstall
脚本来删除特定的模块。
以下是一个示例,展示如何使用 postinstall
脚本来删除某个模块:
// package.json
{
"name": "your-project",
"version": "1.0.0",
"scripts": {
"postinstall": "rimraf node_modules/unwanted-module"
},
"dependencies": {
"wanted-module": "^1.0.0",
"unwanted-module": "^1.0.0" // 这个模块将被删除
},
"devDependencies": {
"rimraf": "^3.0.2" // 用于删除文件和文件夹的跨平台工具
}
}
在上述示例中,unwanted-module
会在 npm install
完成后被 rimraf
命令删除。注意,这种方法虽然有效,但可能不是最佳实践,因为它依赖于后期处理来修改 node_modules
。
更优雅的解决方案可能是通过修改项目的依赖管理方式,或者使用像 yarn
这样的替代包管理器,它可能提供更灵活的依赖处理方式。