你把 Babel 和 Webpack 放在 devDependencies 还是 Dependencies 里?

7 浏览
0 Comments

你把 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日
0
0 Comments

尽管基本上每个人都这么说,但我要提供一些理性的建议……它实际上非常简单:

您的项目是否将被另一个项目npm install调用?也就是说,您是作者还是成为npm模块,并且最终会出现在另一个项目的package.json中?

否?

那么将所有内容都放入dependencies中。

是?

  • dependencies: 您的项目的下游使用者和开发人员想要安装的内容:
  • peerDependencies: 您的下游用户需要确保已经安装的内容
  • bundleDependencies: 您的下游用户将需要这些内容,并且不需要单独安装,因为当您npm publish时,这些内容将与您的包“捆绑”在一起。
  • optionalDependencies: 有些内容很好,但缺少也不会导致致命错误。
  • devDependencies: 仅在您工作在该项目时使用的内容。

简而言之,模块并不会自动以不同的方式安装。它们只会被安装或不被安装。

0
0 Comments

babelwebpack包将进入devDependencies部分,因为这些包用于将代码转换和打包成普通的JavaScript在bundle.js和其他文件中。

在生产中,您将在bundle.js中运行您的代码,生成的代码将不再需要这些依赖项。

0