【发布时间】:2016-04-14 12:38:39
【问题描述】:
由于某种原因在 Windows 上运行 npm install 时它不会安装 devDependencies。 AFAIK 它应该。如果我运行 npm install --dev devDependencies 已安装。我不明白为什么npm install 也不安装 devDependencies ,而只安装依赖项。可能是什么原因?我该如何解决?
也许我的 package.json 有问题?如果有帮助,请在下面列出:
{
"name": "try-brunch",
"version": "0.1.0",
"private": "true",
"devDependencies": {
"brunch": "^2.0.4",
"cssnano-brunch": "^1.1.5",
"javascript-brunch": "^1.8.0",
"sass-brunch": "^1.9.2",
"uglify-js-brunch": "^1.7.8"
},
"dependencies": {
"jquery": "^2.1.4"
}
}
【问题讨论】:
-
为什么我们甚至需要一个 fix 呢?应该是默认的!
devDependencies实际上是模块开发人员的依赖项。我打赌我们大多数人npm install一个模块会使用它,而不是开发它。 -
我的意思是,
devDependencies的安装只有在您编写包(应用程序)时才需要。使用它不需要devDependencies。所以devDependencies需要安装额外的标志是合理的。 如果npm install安装了devDependencies默认情况下,用户也会得到多余的包。 -
记录的行为是,当我在我的文件夹中执行
npm i时,它会抓取 pypackage.json并安装 deps 和 devdeps。这是它的工作方式,它是有意义的(例如,当我在git clone之后执行npm i时,我希望拥有我需要的一切,包括例如 webpack 插件)。当实际行为与预期不同时,此问题解决了一个错误。请看一下文档-docs.npmjs.com/cli/install。有一个不安装 devdeps 的标志,但默认行为是安装它们,这非常有意义,并且是每个人都期望的 -
我没有看到任何理智的理由让我记得运行另一个命令来安装,例如webpack 插件或 typescript 类型 defs 或任何其他 devdeps 每次我拉。
npm i应该引导两者,这是预期的、理智的和记录在案的行为,所以我真的不明白你为什么说这个问题应该是一个标准 -
关于你的观点
Using it does not require the devDependencies- 我有点困惑。当我在 CI 或服务器上运行npm i时,我的应用程序需要例如typescript、jest、webpack,无论要构建什么 devdeps,所以我不知道这是关于哪个using