详解使用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 相关文章推荐
jquery Mobile入门—外部链接切换示例代码
Jan 08 Javascript
Javascript 遮罩层和加载效果代码
Aug 01 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
javascript实现英文首字母大写
Apr 23 Javascript
JSON字符串转JSON对象
Jul 31 Javascript
AngularJS 过滤器(自带和自建)详解
Sep 19 Javascript
JS实现淡入淡出图片效果的方法分析
Dec 20 Javascript
COM组件中调用JavaScript函数详解及实例
Feb 23 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
vue实现的多页面项目如何优化打包的步骤详解
Jul 19 Javascript
Js跳出两级循环方法代码实例
Sep 22 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
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短域名转换为实际域名函数
2011/01/17 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
2013/04/23 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
PHP+Mysql+Ajax实现淘宝客服或阿里旺旺聊天功能(前台页面)
2017/06/16 PHP
详解Yii2.0使用AR联表查询实例
2017/06/16 PHP
JS+CSS实现模仿浏览器网页字符查找功能的方法
2015/02/26 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
浅析jquery如何判断滚动条滚到页面底部并执行事件
2016/04/29 Javascript
JavaScript编写九九乘法表(两种任选)
2017/02/04 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
微信小程序 选项卡的简单实例
2017/05/24 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
2019/05/16 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
python实现的DES加密算法和3DES加密算法实例
2015/06/03 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
浅谈Python 递归算法指归
2019/08/22 Python
python实现文法左递归的消除方法
2020/05/22 Python
Python虚拟环境库virtualenvwrapper安装及使用
2020/06/17 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
利用CSS3实现的文字定时向上滚动
2016/08/29 HTML / CSS
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
公司运动会策划方案
2014/05/25 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
房产授权委托书范本
2014/09/22 职场文书
团委副书记工作总结
2015/08/14 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
新手入门Jvm-- JVM对象创建与内存分配机制
2021/06/18 Java/Android
springboot集成springCloud中gateway时启动报错的解决
2021/07/16 Java/Android