react的基础之上进行引入webpack、eslint、babel的框架搭建

引言

开始深入研究reactjs,弥补之前的浅尝辄止;一开始自己用官方的项目生成器生成了一个简单的架构,自己从这个简化版逐步加入babel, webpack, eslint 等相关的配置,有兴趣的朋友可以移步 react的基础之上进行引入webpack、eslint、babel的框架搭建, 但是你仔细阅读react项目下的 READEME.md, 你就会发现我绕了远路,其实react提供了 yarn eject 来注入webpack, eslint, label 等相关依赖和配置,可能这就是react给大家提供的 脚手架

需要注意的是:这个命令只能执行一次,而且不可逆转。

虽说自己饶了远路,但是还是学到些东西的,也温习了一些 webpack,babel 的配置和原理等,想亲自动手,亲自实践的朋友按照如下步骤进行就行,我已经为你们绕过了一些坑
比如:babel 升级 6.x 到 7.x, 请参阅 babel 7.x 和 webpack 4.x 配置vue项目, 如果以下步骤有什么不妥之处,欢迎大家给我评论,我会及时修正并回复大家的问题。

创建项目的流程

  1. npx create-react-app jelly
    备注:你的环境没有全局安装npx,放心,它会自动安装上并执行创建项目的命令
  2. cd jelly 切换到自己创建项目根目录下
  3. 导入 react-dom 、react-router-dom 、 redux 、 react-redux 、lodash 依赖包
    yarn add react-dom react-router-dom redux react-redux lodash
  4. 安装 Webpack, 现在最流行的模块打包工具
    yarn add webpack webpack-cli webpack-dev-server webpack-merge –dev
  5. 安装一些必要的 Webpack 打包插件 和 eslint
    yarn add html-webpack-plugin copy-webpack-plugin css-loader file-loader eslint babel-eslint –dev
  6. 安装Babel, 可以把ES6转换为ES5,注意Babel最新的V6版本分为babel-cli和babel-core两个模块,这里只需要用babel-core即可
    yarn add @babel/core –dev
  7. 安装其他的babel依赖
    yarn add @babel/polyfill @babel/runtime @babel/plugin-transform-runtime @babel/preset-env @babel/preset-react –dev
  8. 安装 cross-env , cross-env能跨平台地设置及使用环境变量
    yarn add cross-env –dev
  9. 打开 package.json , 添加或者修改下面的命令脚本
    package.json
    1
    2
    3
    4
    5
    "scripts": {
    "start": "cross-env NODE_ENV=development webpack-dev-server --cache --colors --profile --progress -d",
    "build": "cross-env NODE_ENV=production webpack --cache --colors --profile --progress --hide-modules"
    }

  10. 命令行输入 yarn start 将要启动 webpack dev server.
    命令行输入 yarn build 将会进行生产环境打包.
  11. 要想成功用webpack打包,还需要 webpack.config.js 和 webpack.ini.js , .babelrc
-------------本文结束感谢您的阅读-------------

本文标题:react的基础之上进行引入webpack、eslint、babel的框架搭建

文章作者:sanks

发布时间:2019年03月04日 - 15:13

最后更新:2020年07月12日 - 17:30

原始链接:https://www.sanks-blog.com/create-react-app-simple/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。