为什么react/redux前端项目在package.json中包含生产依赖项
Why does react/redux frontend project contains production dependencies in package.json?
我刚刚开始学习React.js+Redux,我发现很多前端项目都使用npm
作为包管理器。
让我们以这个项目为例-计数器。
它包含package.json
文件。如果我们看一下这个文件的内容,我们会发现其中有devDependencies
和dependencies
条目
"dependencies": {
"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-redux": "^4.2.1",
"redux": "^3.2.1"
},
"devDependencies": {
"babel-core": "^6.3.15",
"babel-loader": "^6.2.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-preset-react-hmre": "^1.1.1",
"babel-register": "^6.3.13",
"cross-env": "^1.0.7",
"enzyme": "^2.0.0",
"expect": "^1.6.0",
"express": "^4.13.3",
"mocha": "^2.2.5",
"node-libs-browser": "^0.5.2",
"react-addons-test-utils": "^0.14.7",
"webpack": "^1.9.11",
"webpack-dev-middleware": "^1.2.0",
"webpack-hot-middleware": "^2.9.1"
}
虽然我知道devDependencies
和dependencies
之间的区别,但我不明白为什么项目在dependencies
部分下列出react
、react-dom
和redux
。据我所知,这是一个前端项目,不需要在服务器上安装任何东西就可以在生产中工作。
正如@aarosil所指出的,npm
并不关心前端或后端。它只是一个包裹管理器。
所以这一切都归结为项目结构。看看你给出的例子(React反例),这是一个在浏览器中运行的非常小的演示。它使用webpack来构建项目,在这种情况下,该项目由浏览器请求的JS捆绑包组成;在浏览器中运行。该捆绑包包括您在package.json
文件中看到的依赖项,该文件也在浏览器中运行。
您可以很容易地使用npm
来构建一个在服务器端使用的"后端"包。在这种情况下,依赖项可能不包括react
等(当然,除非您想在服务器上呈现页面)
相关文章:
- Json数据包含日期和时间格式
- 为什么react/redux前端项目在package.json中包含生产依赖项
- 如何确定对象内部包含对象的JSON的长度
- 返回嵌套JSON中包含特定键的所有值
- 清理json包含和使用
- 如何创建一个包含许多数组和数据的json对象
- 对包含对象的JSON对象进行排序
- 搜索包含值的json对象键,然后取消设置
- 解析字符串包含'"'从mysql检索到JSON
- 使用JQUERY将包含数据集的JSON绑定到dropdownlist
- 将工厂作为本地文件的Angular JS,文件中包含JSON
- 在“加载更多”按钮函数中包含 JSON 数据
- 当字符串包含 HTML 标记时,JSON 解析失败
- 解析包含未被“”包围的键的JSON"与Objective-C
- AJAX/javascript:解析包含数组的JSON
- 如何在json对象中包含图像以及如何检索图像
- 从包含密钥路径的字符串中获取json值
- 如何使用javascript从JSON数据生成树视图
- Fabrics.js - loadFromJSON()在JSON包含类型'形状'的项目时失败
- Rails Json包含自定义值