资讯专栏INFORMATION COLUMN

React+Webpack+Eslint+Babel构建React脚手架

jaysun / 1850人阅读

摘要:注是安装在生产环境,安装在开发环境。安装后,手动创建文件进行定制。配置是语法转化器,可从学习其用法。配置是一个工具,用来避免低级错误和统一代码的风格。可从注册使用,很方便。最后贴上自己的,前端小白,欢迎指导。

React+webpack+Eslint+Babel构建React脚手架

</>复制代码

  1. 参考网上文章,说的不是很全,想自己写一篇来巩固知识点,脚手架源码参考阮一峰老师的Github

所用技术栈

React

Babel

Webpack

Eslint

travis

ES6

构建过程 安装nodejs 初始化项目:

</>复制代码

  1. npm init -y 注:-y的意思是默认安装
目录构建

配置package.json

npm初始化后会自动生成

添加:

</>复制代码

  1. "dependencies": {
  2. "babel-runtime": "6.x",
  3. "react": "15.x",
  4. "react-dom": "15.x"
  5. },
  6. "devDependencies": {
  7. "babel-core": "6.x",
  8. "babel-eslint": "7.x",
  9. "babel-loader": "6.x",
  10. "babel-plugin-transform-runtime": "6.x",
  11. "babel-preset-es2015": "6.x",
  12. "babel-preset-react": "6.x",
  13. "babel-preset-stage-0": "6.x",
  14. "copy-webpack-plugin": "latest",
  15. "css-loader": "~0.26.1",
  16. "eslint": "latest",
  17. "eslint-config-airbnb": "latest",
  18. "eslint-formatter-pretty": "^1.1.0",
  19. "eslint-plugin-compat": "^1.0.0",
  20. "eslint-plugin-import": "latest",
  21. "eslint-plugin-jsx-a11y": "3.x",
  22. "eslint-plugin-promise": "^3.4.0",
  23. "eslint-plugin-react": "latest",
  24. "open-browser-webpack-plugin": "0.0.3",
  25. "style-loader": "~0.13.1",
  26. "webpack": "1.x",
  27. "webpack-dev-server": "1.x"
  28. }

或者在命令行中使用安装命令,加深印象。注:-S是安装在生产环境,-D安装在开发环境。

</>复制代码

  1. //安装react
  2. npm install react -S
  3. npm install react-dom -S
  4. //减少打包的时候重复代码
  5. npm install babel-runtime -S
  6. npm install babel-plugin-transform-runtime -D
  7. //安装babel相关
  8. npm install babel-loader -D //安装babel-loader
  9. npm install babel-core -D //安装babel核心
  10. npm install babel-preset-es2015 -D //支持ES2015
  11. npm install babel-preset-react -D //支持jsx
  12. npm install babel-preset-stage-0 -D //支持ES7
  13. npm install babel-eslint -D
  14. //安装webpack
  15. npm install webpack -D //模块管理和打包工具
  16. npm install webpack-dev-server -D //监听代码自动刷新
  17. //安装Eslint相关
  18. npm install eslint -D
  19. npm install eslint-config-airbnb -D
  20. npm install eslint-formatter-pretty -D
  21. npm install eslint-plugin-compat -D
  22. npm install eslint-plugin-import -D
  23. npm install eslint-plugin-jsx-a11y -D
  24. npm install eslint-plugin-promise -D
  25. npm install eslint-plugin-react -D
配置webpack.config.js

Webpack将项目中的所有静态资源都当做模块,模块之间可以互相依赖,由webpack对它们进行统一的管理和打包发布。

安装webpack后,手动创建文件进行定制。

webpack.production.config.js与之类似。

</>复制代码

  1. const webpack = require("webpack");
  2. const path = require("path");
  3. const OpenBrowserPlugin = require("open-browser-webpack-plugin");
  4. module.exports = {
  5. devServer: {
  6. historyApiFallback: true,
  7. hot: true,
  8. inline: true,
  9. progress: true,
  10. contentBase: "./app",
  11. port: 8080
  12. },
  13. entry: [
  14. "webpack/hot/dev-server",
  15. "webpack-dev-server/client?http://localhost:8080",
  16. path.resolve(__dirname, "app/main.jsx")
  17. ],
  18. output: {
  19. path: path.resolve(__dirname, "build"),
  20. publicPath: "/",
  21. filename: "./bundle.js"
  22. },
  23. module: {
  24. loaders: [
  25. { test: /.css$/, include: path.resolve(__dirname, "app"), loader: "style-loader!css-loader" },
  26. { test: /.js[x]?$/, include: path.resolve(__dirname, "app"), exclude: /node_modules/, loader: "babel-loader" }
  27. ]
  28. },
  29. resolve: {
  30. extensions: ["", ".js", ".jsx"]
  31. },
  32. plugins: [
  33. new webpack.HotModuleReplacementPlugin(),
  34. new OpenBrowserPlugin({ url: "http://localhost:8080" })
  35. ]
  36. };
配置.babelrc

babel是ES2015 语法转化器,可从Babel学习其用法。

安装babel后,手动创建进行配置。

</>复制代码

  1. {
  2. "presets": [ "es2015", "stage-0", "react"],
  3. "env": {
  4. "build": {
  5. "optional": ["optimisation", "minification"]
  6. }
  7. }
  8. }
配置.eslintrc

ESLint是一个QA工具,用来避免低级错误和统一代码的风格。

安装eslint后,手动创建进行配置。

</>复制代码

  1. {
  2. "parser": "babel-eslint",
  3. "extends": "airbnb",
  4. "env": {
  5. "browser": true,
  6. "node": true
  7. },
  8. "parserOptions": {
  9. "ecmaVersion": 6,
  10. "sourceType": "module",
  11. "ecmaFeatures": {
  12. "jsx": true
  13. }
  14. },
  15. "globals": {
  16. "window": true,
  17. "document": true
  18. },
  19. "rules": {
  20. "arrow-parens": 0,
  21. "class-methods-use-this": 0,
  22. "compat/compat": 2,
  23. "comma-dangle": 0,
  24. "consistent-return": 2,
  25. "func-names": 2,
  26. "generator-star-spacing": [0],
  27. "import/no-extraneous-dependencies": ["off"],
  28. "import/extensions": 0,
  29. "import/no-unresolved": 2,
  30. "new-cap": 0,
  31. "no-implicit-coercion": "error",
  32. "no-mixed-operators": 0,
  33. "no-plusplus": 0,
  34. "no-use-before-define": 0,
  35. "no-nested-ternary": 0,
  36. "no-underscore-dangle": 0,
  37. "no-var": "error",
  38. "semi": ["error", "always"],
  39. "promise/param-names": 2,
  40. "promise/always-return": 2,
  41. "promise/catch-or-return": 2,
  42. "promise/no-native": 0
  43. },
  44. "plugins": [
  45. "compat",
  46. "import",
  47. "promise"
  48. ]
  49. }
配置.travis.yml

Travis Ci是一个基于云的持续集成项目,目前已经支持大部分主流语言了,如:C、PHP、Ruby、Python、Nodejs、Java、Objective-C等等,Travis Ci与Github集成非常紧密,官方的集成测试托管只支持Github项目,不过你也可以通过Travis Ci开源项目搭建一套属于自己的方案。

可从Travis注册使用,很方便。

</>复制代码

  1. sudo: false
  2. language: node_js
  3. node_js:
  4. - "node"

最后贴上自己的Github,前端小白,欢迎指导。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/83933.html

相关文章

  • webpack工程化集成React技术栈(一)

    项目开始前,我们先聊一聊关于项目的一些说明。该项目起始于2017年初,当时公司主要技术栈为gulp+angular,鉴于react的火热的生态,在公司决定研发bss管理系统时选用react开发,目的也是为react native打下基础,以解决后期公司大前端技术栈的逐步成熟。(当时没有选择vue开发的主要原因是weex生态还不够特别成熟),既然决定换新,项目的构建也跟着一起换,从gulp转向火热的...

    tianhang 评论0 收藏0
  • react+webpack+webstorm开发环境搭建

    摘要:先是基础知识,首先是补了的基础,使用了的入门教程。另外关于,慕课的视频教程讲的也比较清晰,适合入门统统过了一遍之后,开始建立脚手架,正式上马编写。废话不多说了,下面一步一步开始了。安装完成之后,记得设置路径构建项目使用新建一个空白项目。 前言 春节期间,更新了一下自己关于前端的知识体系,要知道对于前端技术,我还是停留在JSP,JQUERY的时代,现在项目里面使用REACT作为前台,所以...

    Snailclimb 评论0 收藏0
  • 如何搭建一个基于reactwebpack4、babel7的项目(一)

    摘要:对的工作流程有点模糊,以及据官方文档称的升级,性能得到了极大的提升,而还是用的,于是决定从头开始搭建一个适合团队的脚手架。保证各文件获得一致的文件编码和缩进效果。这些在后面文章中,都会一个个涉及到,此处不做详细展开。 前言 写前端项目这么久了,以前用的 dva 框架,后来用过 create-react-app 框架,都需要针对团队做一些定制化的修改。对 webpack 的工作流程有点模...

    IamDLY 评论0 收藏0
  • react-start到co源码(一)

    摘要:安装这个预设主要包含了如下两个插件实现热加载捕获中的方法并展现在界面上修改上述的文件文件通过上面的几个步骤我们就大致完成了开发环境的基本搭建。应该在中进行配置以上就是简单的环境搭建后面会推出后续的文章。 react作为当前十分流行的前端框架,相信很多前端er都有蠢蠢欲动的学习它的想法。工欲善其事,必先利其器。这篇文章就简单的给大家介绍一下如何我快速的搭建一个react前端开发环境。主要...

    gekylin 评论0 收藏0
  • 从零到一,新建webpack工程

    摘要:指定启用例如上述代码,就使用和处理了除了以外的。设置当前的为,同样这个配置也可以写在中。设置目录删除注释去除空格去除属性引号复制静态目录将所以可能被请求的静态文件,分别放在目录下。结语本次从零到一,新建了一个脚手架。 react-sample-javascript 为了实现一个可定制化高的react工程,我们往往会自己搭建一个react工程。所以本文会从零开始搭建一个react脚手架工...

    Code4App 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<