npm如何知道你处于开发/开发模式?

时间:2016-06-10 20:54:01

标签: npm

有人可以向我解释一下--save-dev及其对分销的影响以及NPM如何了解您正在尝试做的事情意味着什么?

2 个答案:

答案 0 :(得分:1)

--save-dev对于单元测试库等依赖项非常有用。应用程序不需要这些依赖项在生产中运行;因此,如果您发布了包,则包的使用者将不会在其node_modules文件夹中获得这些dev依赖项。

NPM并不一定知道您的开发模式,它只是一个包管理器,它允许您将包安装到您的工作目录中并从该目录发布您自己的包。

答案 1 :(得分:1)

首先,请参阅此问题的答案What's the difference between dependencies, devDependencies and peerDependencies

这将解释TON。

第二次,默认情况下,npm将安装devDependencies,除非两件事之一成立,在这种情况下将跳过devDependencies。这些是:

  1. 您明确告诉npm它的作品是npm install --production
  2. 您设置了npm检查的环境变量NODE_ENVIRONMENT=production
  3. 通常,如果您要分发给像Heroku这样的东西,他们将设置生产标记,并且您的devDependencies将安装。因此,如果它是用于开发的模块,例如tests / mocks / scaffolding / etc,则只安装--save-dev-D标志(两者都做同样的事情)。