发布于 2026-01-06 1 阅读
0

如何在不使用 create-react-app 的情况下搭建 React 项目

如何在不使用 create-react-app 的情况下搭建 React 项目

本分步指南解释了如何从头开始设置 React 应用程序,而无需使用任何“create-react-app”脚本。

免责声明: 

首先我想强调的是,使用“create-react-app”脚本编写代码完全没有问题。过去,我发现这是一种非常高效便捷的 React 应用搭建方式,尤其是在我刚开始学习 React 的时候。这些脚本会自动配置 Webpack 和 Babel,让你能够专注于应用本身的开发。如果你想了解更多关于配置过程以及这些工具如何与你的 React 应用相关的信息,我强烈建议你按照本指南中的步骤进行操作。

冒牌天神打字 GIF

入门

步骤 1:设置您的项目 

首先,您需要在您的计算机上下载并安装Node.jsYarn 。

安装完成后,您应该创建一个空目录来存放您的项目。您可以通过在终端中输入以下命令来创建并进入新目录:

 > mkdir myProject              
 > cd myProject
Enter fullscreen mode Exit fullscreen mode

步骤 2:初始化您的项目

现在您已经创建了一个目录,接下来需要初始化项目并创建一个package.json文件。 
该文件将: 

  • 列出项目所依赖的所有软件包
  • 指定项目中可以使用的软件包的哪个版本(使用语义化版本控制规则)。
  • 这样可以方便地与其他开发者分享你的工作成果,因为他们可以使用此文件来重现你的构建过程。

您可以通过在终端中运行一个命令来初始化您的项目。

##for node use:
 > npm init

##for yarn use:
 > yarn init
Enter fullscreen mode Exit fullscreen mode

这将提示您输入一系列命令,要求您输入项目信息,以便创建相关的package.json文件。您输入的信息将以 JSON 对象的形式出现在package.json文件的顶部。(您可以在项目开发过程中随时更改这些信息,因此暂时留空也没关系。)

 package name: (myProject)
 version: (1.0.0)
 description: //enter a short description about your project 
 here
 entry point: (index.js)
 test command: //enter your test command here e.g test
 git repository: //enter the link for your github repo (if 
 you already cloned a github repo and created your directory 
 inside of it, the repo link will automatically appear here)
 keywords: //enter any optional keywords here
 author: Rasveer Bansi
 license: (ISC)
Enter fullscreen mode Exit fullscreen mode

接下来,您需要在 myProject 目录下创建一个 src 文件夹,用于存储项目的所有源代码。

> mkdir src 
Enter fullscreen mode Exit fullscreen mode

您的项目结构现在应该类似于:

myProject 
| - src 
Enter fullscreen mode Exit fullscreen mode

步骤 3:设置 Webpack

Webpack是一款用于处理和打包应用程序的工具,它可以让你的代码更易于浏览器使用。你的应用程序包含可重用代码模块(例如 JavaScript、Node.js、图片和 CSS 样式),这些模块共同构成了你的应用程序。Webpack 会根据代码在应用程序中的使用方式对其进行拆分,从而让浏览器更容易理解和执行。

您可以通过在终端中运行以下命令来安装 Webpack。

##for node use:
 > npm install --save-dev webpack webpack-dev-server webpack-cli

##for yarn use: 
 > yarn add webpack webpack-dev-server webpack-cli
Enter fullscreen mode Exit fullscreen mode

接下来,您需要在myProject目录下创建一个名为webpack.config.js 的文件。在该文件中,您需要保存以下代码:

const path = require('path');
  module.exports = {

//define entry file and output
    entry: './src/index.js',
    output: {
     path: path.resolve('dist'),
     filename: 'main.js'
    },
  }
Enter fullscreen mode Exit fullscreen mode

entry - 这是要包含在构建中的顶级文件集。它可以是单个文件,也可以是文件数组。
:在上面的示例中,我们传递了单个文件index.js)。

output  - 这是一个包含输出配置的对象。在上面的示例中,我们指定了 Webpack 要构建的文件的名称( main.js)以及该文件应存储的项目路径。

第四步:设置 Babel

Babel是一个 JavaScript 编译器,它可以将 ES6 代码转换为向后兼容的版本,这样旧版浏览器也可以运行你的应用程序。

要安装 Babel,您需要在终端中运行以下命令。

##for node use:
 > npm install --save-dev babel-core babel-loader 
 babel-preset-es2015 babel-preset-react @babel/core 
 @babel/preset-env @babel/preset-react

 > npm install --save-dev babel-plugin-transform-object-rest-spread 

##for yarn use:
 > yarn add  babel-core babel-loader babel-preset-es2015
 babel-preset-react @babel/core @babel/preset-env 
 @babel/preset-react

 > yarn add babel-plugin-transform-object-rest-spread
Enter fullscreen mode Exit fullscreen mode

接下来,您需要在myProject目录下创建一个名为babel.config.json 的文件。在该文件中,您需要保存以下代码:

{
  "presets":[
    "@babel/preset-env",
    "@babel/preset-react"
  ],
  "env": {
    "test": {
      "plugins": ["@babel/plugin-transform-modules-commonjs"]
    }
  },
  "plugins": [ "transform-object-rest-spread" ]
}
Enter fullscreen mode Exit fullscreen mode

预设 - 这允许您使用之前安装的 React 和 ES2015 预设,将代码编译成与旧版浏览器兼容的版本。安装@babel /preset-env”后,您就包含了所有JavaScript 版本。

插件 - 这些是您可以安装的独立插件,它们可以将特定的 ES6 模块编译成更兼容旧版浏览器的格式。

接下来,你需要将 Babel 加载器添加到webpack.config.js文件中。为此,你需要创建一个模块对象,并在该对象内部创建一个名为rules 的数组。该数组将每个加载器存储为单独的对象,每个对象都由键“ loader ”定义

整个文件现在应该看起来像这样:

const path = require('path');
 module.exports = {
 //define entry file and output
  entry: './src/index.js',
  output: {
    path: path.resolve('dist'),
    filename: 'main.js'
  },
 //define babel loader
  module: {
    rules: [
      { test: /\.jsx?$/, loader: 'babel-loader', 
        exclude: /node_modules/ 
      },
      { test: /\.css$/i,
        use: ["style-loader", "css-loader"],
      }
    ]
  }
};
Enter fullscreen mode Exit fullscreen mode

test  - 一个正则表达式 (regex),用于测试哪些类型的文件需要通过加载器加载。如您所见,此示例添加了正则表达式来测试所有扩展名为jsx的 ES6 文件,并且还创建了一个单独的对象来处理CSS文件。

loader  - 你要使用的加载器的名称(例如babel-loader 或 style-loader / css-loader)。

排除项 - 指定加载器应排除或忽略哪些文件。本例选择排除并忽略node_modules文件夹。

步骤五:设置您的参赛文件

现在您已经设置好了项目配置(太棒了!),接下来您需要创建一些入口文件,以便开始开发您的应用程序。

您可以先创建两个条目文件: 

  • src文件夹内有一个index.js文件
  • 在你的myProject目录中有一个index.html文件

您的文件结构应类似于这样

 | - src
 |    | - index.js
 |
 | - index.html
 | - webpack.config.js
 | - babel.config.json
 | - package.json
Enter fullscreen mode Exit fullscreen mode

index.js文件与webpack.config.js文件中配置的入口点
是同一个。目前您可以将以下代码放在其中,但是一旦开始开发应用程序,就需要更新此文件,使其包含用于渲染应用程序的相关起始组件。

console.log('hello world!'); 
Enter fullscreen mode Exit fullscreen mode

index.html
文件为您的应用程序提供结构,并被 Web 服务器用作“默认文档”。它包含一个 script 标签,该标签会将浏览器引导至专门为浏览器构建的 webpack 文件。

将以下代码添加到您的index.html文件中:

<!DOCTYPE html>
<html>
   <head>
     <meta charset="utf-8">
     <title>React</title>
   </head>
   <body>
     <div id="root"></div>
     <script src="main.js"></script>
   </body>
</html>
Enter fullscreen mode Exit fullscreen mode

在这段代码中,是将我们的浏览器指向 webpack 文件( main.js )的标签

步骤六:设置项目脚本

现在你已经设置好了一些入口文件,接下来需要编写一些脚本来告诉你的应用程序该做什么。这些脚本也是你在终端中编写应用程序时需要使用的命令。目前,你可以先编写两个脚本来构建和启动你的应用程序。

为此,您需要在package.json文件中创建一个scripts对象。在该对象中,您可以将每个脚本编写为单独的 script 对象。对于要包含的每个 script 对象,键是运行该脚本所需的命令关键字,值是应用程序要遵循的指令。

将以下脚本对象添加到您的package.json文件中

"scripts": {
   "start": "webpack serve --mode development --env 
 development",
   "build": "webpack"
}
Enter fullscreen mode Exit fullscreen mode

现在,如果您想通过终端启动应用程序,可以使用键为“start”的脚本对象。这将指示您的应用程序启动 Webpack 服务器。

 ##for Node use:
 > npm run start

 ##for Yarn use:
 > yarn start
Enter fullscreen mode Exit fullscreen mode

步骤 7:设置 React

最后一步是配置React,这样你就可以开始开发 React 应用程序了。

为此,我们需要在myProject目录中安装 React,方法是在终端中输入以下命令。

 ##for Node use:
 > npm install --save react react-dom

 ##for Yarn use:
 > yarn add react react-dom
Enter fullscreen mode Exit fullscreen mode

恭喜!您已完成设置,现在可以开始开发您的 React 应用了🎉

庆祝gif

文章来源:https://dev.to/rasveerb/how-to-set-up-react-projects-without-using-create-react-app-3hkm