是否有节点包管理器使用的默认转换器和捆绑器?

时间:2017-04-30 03:41:53

标签: reactjs npm

我是反应新手。我正在使用节点包管理器(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"
  }
}

如果仔细查看dependenciesdevDependencies部分,您将无法找到Babel(转换器)或webpack(捆绑器)之类的内容。所以我想知道当我使用npn run start命令运行我的网站时,我的reactJs类文件是如何被转换和捆绑的。是否有NPM使用的默认转换器和捆绑器,或者我在观察中遗漏了什么?

[尼古拉斯评论后更新] : 相反,在我在办公室工作的实时项目代码库中,我发现babel-core中提到了babel-cliwebpackdevDependencies等依赖项。部分。它们不在dependencies部分。如果react-scripts已经对babel-corebabel-cliwebpack等具有隐式依赖关系,那么为什么必须在devDependencies部分明确提及它们?即使是devDependencies也可以通过在我的测试项目中提及react-scripts的方式来实现。不是吗?但我的开发人员并没有这样做。

1 个答案:

答案 0 :(得分:2)

运行react-scripts时调用的

$ npm start将这些转发器/捆绑包作为它自己的依赖项

react-scripts中,您不会在示例中看到显式安装的模块package.json的依赖关系。它们将作为react-scripts模块package.json中的依赖项而存在。

例如,查看react-scripts模块的package.json of this subfolder

它包含许多依赖项,其中一些是Babel和Webpack。