【问题标题】:is it neccessary to specify '-D' while using npm install?使用 npm install 时是否需要指定 \'-D\'?
【发布时间】:2023-01-07 01:51:17
【问题描述】:

例如,当我需要安装 webpack 时,通常我们应该使用“npm i -D webpack”,但是如果我改用“npm i webpack”,那么我最终的 bundle 文件没有区别,为什么我们需要指定'-D'?

我认为它们之间没有区别,为什么不直接使用 npm i 呢?

npm i -D 
npm i

【问题讨论】:

  • 这在一定程度上取决于您使用的是哪种类型的包——它可能很有用,例如npm audit --omit dev 只告诉您所发布代码中的漏洞;或者使用 NODE_ENV=production 的安装不包括你所有的开发依赖;或者您的包的消费者仅获得运行时所需的传递依赖项。

标签: npm-install


【解决方案1】:

根据文档,npm install -D 表示您正在将包安装为 devDependency 而不是常规依赖项。

这有什么不同?

当您的应用程序已部署并且您的服务器运行 npm install 步骤时,它只会安装依赖的包,而不安装 devDependency 中的包。因此,我们通常会安装 eslinttypescript 之类的东西,比如 devDependency 而不是常规依赖。

参考

https://docs.npmjs.com/cli/v6/commands/npm-install

【讨论】:

    【解决方案2】:

    -D 标志是--save-dev 的缩写,它用于将包安装为“开发依赖项”。这意味着当您实际部署代码时,该包仅在开发中而不是在生产中需要。

    例如:如果您在项目中使用 webpack 来打包 JavaScript 代码,则只有在处理项目时才需要它,而不是在部署项目时。在这种情况下,您可能希望使用 npm i -D webpack 将其安装为开发依赖项。

    否则,如果您使用npm i webpack,它将作为常规依赖项安装,这意味着它将在部署时包含在您的项目中。如果您只需要开发中的包而不是生产中的包,这可能不是您想要的。

    【讨论】:

      猜你喜欢
      • 2012-02-05
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 2021-03-17
      • 2020-07-24
      相关资源
      最近更新 更多