你把 Babel 和 Webpack 放在 devDependencies 还是 Dependencies 里?
你把 Babel 和 Webpack 放在 devDependencies 还是 Dependencies 里?
我刚开始学习npm,并不太明白应该把哪些内容放在dependencies和devDependencies中。我知道测试库应该放在dev中,但是babel和webpack这样的东西呢?它们也应该放在dev中吗,因为它们只用于将es6和JSX转换为普通JS吗?我理解的是部署到heroku时,它已经使用必要的库进行了转换,因此不需要在生产环境中托管这些库?
"dependencies": { "babel-core": "^6.7.7", "babel-eslint": "^6.0.4", "babel-loader": "^6.2.4", "babel-plugin-react-transform": "^2.0.2", "babel-plugin-transform-object-rest-spread": "^6.6.5", "babel-plugin-transform-react-display-name": "^6.5.0", "babel-polyfill": "^6.7.4", "babel-preset-es2015": "^6.6.0", "babel-preset-react": "^6.5.0", "bootstrap": "^3.3.7", "css-loader": "^0.23.1", "es6-promise": "^3.2.1", "eslint": "^2.9.0", "eslint-plugin-babel": "^3.2.0", "eslint-plugin-react": "^5.0.1", "express": "^4.13.4", "extract-text-webpack-plugin": "^1.0.1", "file-loader": "^0.9.0", "lodash": "^4.15.0", "react": "^15.0.2", "react-addons-css-transition-group": "^15.0.2", "react-dom": "^15.0.2", "react-redux": "^4.4.5", "react-transform-catch-errors": "^1.0.2", "react-transform-hmr": "^1.0.4", "redbox-react": "^1.2.3", "redux": "^3.5.2", "redux-form": "^6.1.0", "rimraf": "^2.5.2", "style-loader": "^0.13.1", "webpack-dev-middleware": "^1.6.1", "webpack-hot-middleware": "^2.10.0" }, "devDependencies": { "babel-register": "^6.9.0", "chai": "^3.5.0", "mocha": "^2.5.3", "sinon": "^1.17.4", "webpack": "^1.13.2" }
admin 更改状态以发布 2023年5月23日
尽管基本上每个人都这么说,但我要提供一些理性的建议……它实际上非常简单:
您的项目是否将被另一个项目npm install
调用?也就是说,您是作者还是成为npm模块,并且最终会出现在另一个项目的package.json
中?
否?
那么将所有内容都放入dependencies
中。
是?
dependencies
: 您的项目的下游使用者和开发人员想要安装的内容:peerDependencies
: 您的下游用户需要确保已经安装的内容bundleDependencies
: 您的下游用户将需要这些内容,并且不需要单独安装,因为当您npm publish
时,这些内容将与您的包“捆绑”在一起。optionalDependencies
: 有些内容很好,但缺少也不会导致致命错误。devDependencies
: 仅在您工作在该项目时使用的内容。
简而言之,模块并不会自动以不同的方式安装。它们只会被安装或不被安装。