我是反应新手。我正在使用节点包管理器(NPM)来发布,构建和托管过程。我首先运行npm install -g create-react-app
命令来安装命令,该模板帮助我创建了一个基本的reactJs应用程序。现在我的package.json
文件看起来像这样:
{
"name": "my-react-app",
"version": "0.1.0",
"private": true,
"dependencies": {
"react": "^15.5.4",
"react-dom": "^15.5.4"
},
"devDependencies": {
"react-scripts": "0.9.5"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
如果仔细查看dependencies
和devDependencies
部分,您将无法找到Babel(转换器)或webpack(捆绑器)之类的内容。所以我想知道当我使用npn run start
命令运行我的网站时,我的reactJs类文件是如何被转换和捆绑的。是否有NPM使用的默认转换器和捆绑器,或者我在观察中遗漏了什么?
[尼古拉斯评论后更新] :
相反,在我在办公室工作的实时项目代码库中,我发现babel-core
中提到了babel-cli
,webpack
,devDependencies
等依赖项。部分。它们不在dependencies
部分。如果react-scripts
已经对babel-core
,babel-cli
,webpack
等具有隐式依赖关系,那么为什么必须在devDependencies
部分明确提及它们?即使是devDependencies
也可以通过在我的测试项目中提及react-scripts
的方式来实现。不是吗?但我的开发人员并没有这样做。
答案 0 :(得分:2)
react-scripts
时调用的 $ npm start
将这些转发器/捆绑包作为它自己的依赖项。
在react-scripts
中,您不会在示例中看到显式安装的模块package.json
的依赖关系。它们将作为react-scripts
模块package.json
中的依赖项而存在。
例如,查看react-scripts
模块的package.json of this subfolder。
它包含许多依赖项,其中一些是Babel和Webpack。