详解使用WebPack搭建React开发环境


Posted in Javascript onAugust 06, 2019

第一步、基础环境

初始化

项目初始化

npm init -y

安装webpack

npm i webpack

安装react

npm i react react-dom -s

项目基础框架

入口文件(src/index.js)

import React from 'react'
import {render} from 'react-dom'
import App from './App'
render(<App/>,document.getElementById('root'))

主组件(src/App.js)

import React,{Component} from 'react'
class App extends Component{
  constructor(){
    super()
  }
  redner(){
    return(
      <div>
        App Module
      </div>
    )
  }
}

webpack.config.js

const path = require('path')
const StyleLintPlugin = require('stylelint-webpack-plugin')
const STYLELINTENABLE = true
module.exports = {
  mode:'development',
  entry:'./src/index.js',
  output:{
    path:path.resolve(__dirname,'build'),
    filename:'bundle.js'
  },
  module:{
    rules:[
      //处理js/jsx
      {
        test:/\.jsx?/i,
        use:{
          loader:'bebel-loader',
          options:{
            presets:['@babel/preset-react']
          }
        }
      },
      //处理css
      {
        test:/\.css$/i,
        use:['style-loader','css-loader',{
          loader:'postcss-loader',
          options:{
            plugins:require('autoprefixer')
          }
        }]
      },
      //处理图片资源
      {
        test:/\.(png|jpg|gif)$/i,
        use:{
          loader:'url-loader',
          options:{
            outputPath:'imgs/',
            limit:10*1024
          }
        }
      },
      //处理字体文件
      {
        test:/\.(eot|svg|ttf|woof|woof2)$/i,
        use:{
          loader:'url-loader',
          options:{
            outputPath:'fonts/',
            limit:10*1024
          }
        }
      },
      //less
      {
        test:/\.less$/i,
        use:['style-loader','css-loader','less-loader']
      },

    ]
  },
  devtool:'source-map',
  plugins:[
    ...STYLELINTENABLE ?[
      new StyleLintPlugin({
        files:['**/*.css','**/*.less','**/*.js','**/*.html','**/*.vue','**/*.scss']
      })
    ]:[]
  ]
}

webpack.config.js

"stylelint": {
  "extends": "stylelint-config-standard"
 },
 "browserslist":[
  "> 0.5%",//市场占有率大于百分之零点5
  "last 2 version",//最后两个版本
  "not dead"//还没有die
 ]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js arguments.callee的应用代码
May 07 Javascript
javascript实现在网页任意处点左键弹出隐藏菜单的方法
May 13 Javascript
jQuery插件EasyUI校验规则 validatebox验证框
Nov 29 Javascript
浅谈js数组和splice的用法
Dec 04 Javascript
深入理解jQuery()方法的构建原理
Dec 05 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
Nov 22 Javascript
基于JavaScript实现表格滚动分页
Nov 22 Javascript
vue 实现复制内容到粘贴板clipboard的方法
Mar 17 Javascript
JS装饰器函数用法总结
Apr 21 Javascript
Vue.js 中 axios 跨域访问错误问题及解决方法
Nov 21 Javascript
微信小程序仿通讯录功能
Apr 09 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
vue-cli3+typescript新建一个项目的思路分析
Aug 06 #Javascript
Vue 中可以定义组件模版的几种方式
Aug 06 #Javascript
angularjs请求数据的方法示例
Aug 06 #Javascript
通过js示例讲解时间复杂度与空间复杂度
Aug 06 #Javascript
Flutter 超实用简单菜单弹出框 PopupMenuButton功能
Aug 06 #Javascript
JS中如何轻松遍历对象属性的方式总结
Aug 06 #Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 #Javascript
You might like
怎么在Windows系统中搭建php环境
2013/08/31 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
Google排名中的10个最著名的 JavaScript库
2010/04/27 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
js动态修改表格行colspan列跨度的方法
2015/03/30 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
Jquery easyui 实现动态树
2015/11/17 Javascript
AngularJS模块学习之Anchor Scroll
2016/01/19 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
JavaScript的变量声明与声明提前用法实例分析
2019/11/26 Javascript
JavaScript回调函数callback用法解析
2020/01/14 Javascript
[51:29]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python入门篇之对象类型
2014/10/17 Python
Python编程中的for循环语句学习教程
2015/10/14 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
Python对象转换为json的方法步骤
2019/04/25 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
使用python-cv2实现视频的分解与合成的示例代码
2020/10/26 Python
python3代码中实现加法重载的实例
2020/12/03 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
C#可否对内存进行直接的操作
2015/02/26 面试题
八项规定整改方案
2014/02/21 职场文书
优秀班组长事迹
2014/05/31 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2014财务年终工作总结
2014/12/08 职场文书
2014年学前班工作总结
2014/12/08 职场文书
护士个人年度总结范文
2015/02/13 职场文书
财务会计个人原因辞职信
2019/06/21 职场文书
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python