是否可以选择安装没有依赖项的 npm 包?

Jus*_*ing 27 npm

我正在尝试修改具有多个依赖项的 npm 包。因此npm install -g .需要很长时间来执行。除了从packages.json 中删除依赖项之外,我还有其他选择吗?

小智 22

--no-optional选项现在根据这个文档https://docs.npmjs.com/cli/install 实现

The --no-optional argument will prevent optional dependencies from being installed.
Run Code Online (Sandbox Code Playgroud)


mar*_*mor 10

如果您node_module自己开发,请不要在npm installs上浪费时间,而是使用npm link.

简而言之,您在 npm 拥有的全局文件夹中创建指向模块文件夹的符号链接,然后在您的 app 文件夹中要求 npm 使用该符号链接文件夹。

这使您在模块文件夹中所做的更改立即反映在您的应用程序中。

以下是主要步骤(从下面链接的教程中复制,请务必阅读教程以了解重要的问题):

  1. 光盘到 src/my_module
  2. 运行“ npm link”。这将创建从全局文件夹到该src/my_module文件夹的符号链接。
  3. 光盘到 src/my_app
  4. 运行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 linkhttps : //docs.npmjs.com/cli/link


slm*_*slm 7

查看文档,它似乎没有除--no-optional开关之外的选项。

未经测试/未经证实

这个题为:npm install通过网络安装我的项目的所有依赖项的SO Q&A ,即使它们已经安装或从缓存中可用似乎暗示有一个--skip-installed开关。但是文档没有提到这个开关。


小智 6

早在 2010 年就要求使用此功能,但不幸的是被忽略并关闭:https : //github.com/npm/npm/issues/340

我尝试了一堆选项,最后找到了一个非常简单的解决方案 - 在 doint npm install 之前将 package.json 重命名为其他名称,然后在安装完成后将其恢复为:

mv package.json package.bak
npm install <package_name> --no-save
mv package.bak package.json
Run Code Online (Sandbox Code Playgroud)

  • 哇,那真的仍然是唯一的方法吗?这太荒谬了,应该有一个标志`--ignore-package`什么的。 (3认同)
  • 这个解决方案很好,到目前为止它可能是我问题的最佳解决方案:/sf/ask/3747299181/ (3认同)