详解使用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+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
JavaScript生成GUID的多种算法小结
Aug 18 Javascript
clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
Oct 10 Javascript
JavaScript的ExtJS框架中表格的编写教程
May 21 Javascript
jQueryUI中的datepicker使用方法详解
May 25 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
在vue中使用css modules替代scroped的方法
Mar 10 Javascript
vue集成百度UEditor富文本编辑器使用教程
Sep 21 Javascript
layui实现三级联动效果
Jul 26 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
js实现踩五彩块游戏
Feb 08 Javascript
javascript 原型与原型链的理解及应用实例分析
Feb 10 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
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
PHP 强制下载文件代码
2010/10/24 PHP
简单的PHP缓存设计实现代码
2011/09/30 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
Highcharts入门之基本属性
2016/08/02 Javascript
封装的dialog插件 基于bootstrap模态对话框的简单扩展
2016/08/10 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
用jQuery实现圆点图片轮播效果
2017/03/19 Javascript
requirejs + vue 项目搭建详解
2017/06/16 Javascript
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Python异常处理操作实例详解
2018/05/10 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
浅谈pycharm使用及设置方法
2019/09/09 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python实现控制台输出彩色字体
2020/04/05 Python
基于Pyinstaller打包Python程序并压缩文件大小
2020/05/28 Python
浅谈Python中的继承
2020/06/19 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
HEMA英国:荷兰原创设计
2018/08/28 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
学习计划书怎么写
2014/09/15 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers