详解使用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 相关文章推荐
JavaScript效率调优经验
Jun 04 Javascript
详谈 Jquery Ajax异步处理Json数据.
Sep 09 Javascript
jquery 选择器引擎sizzle浅析
Feb 06 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
Dec 30 Javascript
node.js实现多图片上传实例
Jun 03 Javascript
字段太多jquey快速清空表单内容方法
Aug 21 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
Mar 27 Javascript
JavaScript实现的圆形浮动标签云效果实例
Aug 06 Javascript
jQuery webuploader分片上传大文件
Nov 07 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
基于js中document.cookie全面解析
Sep 14 Javascript
vue移动端项目缓存问题实践记录
Oct 29 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程序员编程注意事项
2008/04/10 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
2016/11/16 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
JavaScript和JQuery实用代码片段(一)
2010/04/07 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
显示今天的日期js代码(阳历和农历)
2014/09/30 Javascript
Jquery获取当前城市的天气信息
2016/08/05 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
Node 使用express-http-proxy 做api网关的实现
2020/10/15 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
python基于socket实现网络广播的方法
2015/04/29 Python
python实现文本去重且不打乱原本顺序
2016/01/26 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
全面了解django的缓存机制及使用方法
2019/07/22 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python matplotlib可视化实例解析
2020/06/01 Python
Windows下PyCharm配置Anaconda环境(超详细教程)
2020/07/31 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
CSS3实现图片抽屉式效果的示例代码
2019/11/06 HTML / CSS
厨师岗位职责
2013/11/12 职场文书
歌唱比赛获奖感言
2014/01/21 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
党的群众路线教育实践活动心得体会(企业)
2014/11/03 职场文书
班主任经验交流材料
2014/12/16 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
入伍志愿书怎么写?
2019/07/19 职场文书
详解MySQL主从复制及读写分离
2021/05/07 MySQL
python中的plt.cm.Paired用法说明
2021/05/31 Python