决定是否保存到devDependencies或依赖项?

时间:2017-09-04 03:17:49

标签: node.js npm

我正在建立一个react / express应用程序,并希望确保我设置我的package.json,以便dev包位于devDependencies下,生产包位于{{1 }}。

下载新的npm软件包时,了解我是否可以使用dependencies或使用--save保存它的最快方法是什么?例如,这是我当前的package.json:

--save-dev

我很难查找每个包应该继续的部分。我试着查找每个人的依赖,但从来没有得到一个真正决定性的答案,所以我不知道我是否做得最好。

下载npm包以查找是否可以使用 "devDependencies": { "babel-eslint": "^7.2.3", "babel-loader": "^7.1.2", "eslint": "^4.6.0", "eslint-plugin-react": "^7.3.0", "jest": "^20.0.4" }, "dependencies": { "babel-cli": "^6.26.0", "babel-polyfill": "^6.26.0", "babel-preset-env": "^1.6.0", "babel-preset-react": "^6.24.1", "babel-preset-stage-2": "^6.24.1", "ejs": "^2.5.7", "express": "^4.15.4", "pm2": "^2.6.1", "react": "^15.6.1", "react-dom": "^15.6.1", "webpack": "^3.5.5" } 保存它时,最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

通常,dependencies (--save)适用于应用程序代码引用的软件包:在有人使用您的应用时运行的代码。 devDependencies (--save-dev)适用于您的应用的开发人员:编译/构建工具和测试。

npm或节点没有严格的限制,说包x必须进入dependenciesdevDependencies。你可以安装webpack,但是如果我们按照上面的逻辑,最合适的部分是devDependencies

当您将软件包发布到npm时,为您的软件包执行npm install的用户可以选择安装软件包的代码,dependencies(通常),{{ 1}},或两者兼而有之。如果他们不打算修改您的软件包中的代码,他们就不会需要devDependencies中的任何内容。这是保持两个部分干净分离的一个原因。

答案 1 :(得分:2)

这就是我的工作。我很好奇是否有更好的方法:

在npmjs.com网站上查找您的软件包,并查看他们建议如何安装它。

如果他们建议使用--save(或简单而没有任何--save选项)进行安装,则它属于dependencies

如果他们建议使用--save-dev(或--dev-D)安装它,则它通常属于devDependencies

例如:

例外:

我注意到这种方法并不总是可靠的。例如。 resize-observer-polyfill建议与--save-dev一起安装,但是我正在研究的项目在生产中使用了它。再说一次,如果您使用的是webpack,它可能仍会为您捆绑:)。