我正在尝试修改具有多个依赖项的 npm 包。因此npm install -g .
需要很长时间才能执行。除了从packages.json 中删除依赖项之外,我还有其他选择吗?
答案1
--无可选现在根据此文档实施选项https://docs.npmjs.com/cli/install:
The --no-optional argument will prevent optional dependencies from being installed.
答案2
如果您自己开发node_module
,请不要在 s 上浪费时间npm install
,而应使用npm link
.
简而言之,您在 npm 拥有的全局文件夹上创建一个指向模块文件夹的符号链接,然后在您的应用程序文件夹中要求 npm 使用该符号链接文件夹。
这使得您在模块文件夹中所做的更改会立即反映在您的应用程序中。
以下是主要步骤(从下面链接的教程复制,请务必阅读该教程以了解重要的问题):
- 光盘到
src/my_module
- 跑步 ”
npm link
”。这将创建从全局文件夹到该文件夹的符号链接src/my_module
。 - 光盘到
src/my_app
- 跑步
npm link my_module
。这会node_modules/my_module
在此特定项目中链接到全局文件夹,以便require
查找的调用my_module
最终会从您的开发文件夹src/my_module
.
请参阅本教程:http://justjs.com/posts/npm-link-developing-your-own-npm-modules-without-tears
以及官方文档npm link
:https://docs.npmjs.com/cli/link
答案3
早在 2010 年就有人请求此功能,但不幸的是被忽略并关闭:https://github.com/npm/npm/issues/340
我尝试了很多选项,最后找到了一个非常简单的解决方案 - 在执行 npm install 之前将 package.json 重命名为其他名称,然后在安装完成后将其恢复为:
mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
答案4
翻翻文档除了开关之外似乎没有其他选择--no-optional
。
未经测试/未经确认
此问答题为:npm install
通过网络安装我的项目的所有依赖项,即使它们已安装或可从缓存中获取似乎暗示有一个--skip-installed
开关。但文档没有提及此开关。