【发布时间】:2017-09-27 21:35:32
【问题描述】:
我是 reactJs 的新手。我正在使用节点包管理器 (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 是否使用了任何默认的转译器和捆绑器,或者我在观察中遗漏了一些东西?
[在 Nicholas 发表评论后更新]:
相反,在我在办公室工作的实时项目代码库中,我看到devDependencies 部分提到了babel-core、babel-cli、webpack 等这些依赖项。他们不在dependencies 部分。如果react-scripts 已经隐式依赖于babel-core、babel-cli、webpack 等,那么为什么必须在devDependencies 部分明确提及它们?即使devDependencies 也可以简单地通过提及react-scripts 来做到这一点,他们在我的测试项目中正在发生这种情况。不是吗?但我的开发者伙伴们并没有这样做。
【问题讨论】:
-
在我在办公室工作的实时项目代码库中,我看到
devDependencies部分提到了babel-core、babel-cli、webpack等这些依赖项。他们不在dependencies部分。如果react-scripts已经隐式依赖于babel-core、babel-cli、webpack等,那么为什么必须在devDependencies部分明确提及它们?即使devDependencies也可以简单地通过提及react-scripts来做到这一点,他们在我的测试项目中正在发生这种情况。不是吗?但我的开发者伙伴们并没有这样做。 -
也许您的同事需要在项目的其他部分明确使用这些模块?他们可能有自己的原因 - 为什么不问问他们并找出答案?