我正在建立一个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"
}
保存它时,最好的方法是什么?
答案 0 :(得分:2)
通常,dependencies (--save)
适用于应用程序代码引用的软件包:在有人使用您的应用时运行的代码。 devDependencies (--save-dev)
适用于您的应用的开发人员:编译/构建工具和测试。
npm或节点没有严格的限制,说包x
必须进入dependencies
或devDependencies
。你可以安装webpack
,但是如果我们按照上面的逻辑,最合适的部分是devDependencies
。
当您将软件包发布到npm时,为您的软件包执行npm install
的用户可以选择安装软件包的代码,dependencies
(通常),{{ 1}},或两者兼而有之。如果他们不打算修改您的软件包中的代码,他们就不会需要devDependencies
中的任何内容。这是保持两个部分干净分离的一个原因。
答案 1 :(得分:2)
这就是我的工作。我很好奇是否有更好的方法:
在npmjs.com网站上查找您的软件包,并查看他们建议如何安装它。
如果他们建议使用--save
(或简单而没有任何--save
选项)进行安装,则它属于dependencies
。
如果他们建议使用--save-dev
(或--dev
或-D
)安装它,则它通常属于devDependencies
。
例如:
npm install --save @babel/runtime
dependencies
npm install --save-dev @babel/core
devDependencies
例外:
我注意到这种方法并不总是可靠的。例如。 resize-observer-polyfill
建议与--save-dev
一起安装,但是我正在研究的项目在生产中使用了它。再说一次,如果您使用的是webpack,它可能仍会为您捆绑:)。