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

我正在构build一个react / express应用程序,并且要确保我正在设置我的package.json,以便dev软件包位于devDependencies下,生产软件包位于dependencies下。

当下载一个新的npm软件包时,有什么最快的方法来确定我是否可以使用--save或使用--save-dev来保存它? 例如,这里是我目前的package.json:

  "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" } 

我很难查找每个软件包应该放在哪个部分。 我试图找出每个人的依赖关系,但从来没有得到一个真正的决定性的答案,所以我不知道我是否做得最好。

当下载一个npm包以查找是否可以使用--save-dev保存时,最好的方法是什么?

通常情况下, dependencies (--save)适用于应用程序代码所引用的包:当有人使用您的应用程序时运行的代码。 devDependencies (--save-dev)适用于应用程序开发人员使用的软件包:编译/编译工具和testing。

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

当你把软件包发布到npm时,一个为你的软件包进行npm install的用户可以select安装软件包的代码, dependencies (通常), devDependencies或两者。 如果他们不打算修改你的包中的代码,他们将不需要devDependencies任何东西。 这是保持两个部门干净地分开的一个原因。