【问题标题】:Is there any default transpiler and bundler used by node package manager?节点包管理器是否使用任何默认的转译器和捆绑器?
【发布时间】: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 来做到这一点,他们在我的测试项目中正在发生这种情况。不是吗?但我的开发者伙伴们并没有这样做。
  • 也许您的同事需要在项目的其他部分明确使用这些模块?他们可能有自己的原因 - 为什么不问问他们并找出答案?

标签: reactjs npm


【解决方案1】:

react-scripts,当您运行$ npm start 时会调用它,将那些转译器/捆绑器作为它自己的依赖项。

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

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

它包含一堆依赖,其中一些是 Babel 和 Webpack。

【讨论】:

  • 哦。好的! create-react-app 的 git hub 链接解决了这个谜团。它恰好具有构建和启动 reactJs 应用程序所需的所有依赖项。
  • 我终于通过使用npm run eject 命令对依赖关系有了更多的了解。它将所有显式安装的模块的依赖项带入当前项目的package.json 文件中。您可以检查相同的here。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-16
  • 1970-01-01
  • 2020-10-22
相关资源
最近更新 更多