详解使用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 相关文章推荐
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
Javascript 垃圾收集机制介绍理解
May 14 Javascript
jquery checkbox无法用attr()二次勾选问题的解决方法
Jul 22 Javascript
完美解决JS文件页面加载时的阻塞问题
Dec 18 Javascript
JS仿QQ好友列表展开、收缩功能(第二篇)
Jul 07 Javascript
Angular在模板驱动表单中自定义校验器的方法
Aug 09 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
Mar 06 Javascript
iview同时验证多个表单问题总结
Sep 29 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
使用Karma做vue组件单元测试的实现
Jan 16 Javascript
extjs图表绘制之条形图实现方法分析
Mar 06 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 xml 入门学习资料
2011/01/01 PHP
mysql_num_rows VS COUNT 效率问题分析
2011/04/23 PHP
PHP生成图片缩略图类示例
2017/01/12 PHP
Laravel框架表单验证操作实例分析
2019/09/30 PHP
Zero Clipboard js+swf实现的复制功能使用方法
2010/03/07 Javascript
jQuery截取指定长度字符串的实现原理及代码
2014/07/01 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
jQuery实现“扫码阅读”功能
2015/01/21 Javascript
浅谈react.js 之 批量添加与删除功能
2017/04/17 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
利用node.js如何创建子进程详解
2017/12/09 Javascript
AngularJS监听ng-repeat渲染完成的方法
2018/03/20 Javascript
vue采用EventBus实现跨组件通信及注意事项小结
2018/06/14 Javascript
详解Vue.js使用Swiper.js在iOS
2018/09/10 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
JavaScript实现tab栏切换效果
2020/03/16 Javascript
浏览器JavaScript调试功能无法使用解决方案
2020/09/18 Javascript
python计算对角线有理函数插值的方法
2015/05/07 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
深入分析python中整型不会溢出问题
2018/06/18 Python
Python import与from import使用及区别介绍
2018/09/06 Python
python中的Elasticsearch操作汇总
2019/10/30 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
pandas之分组groupby()的使用整理与总结
2020/06/18 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
时尚孕妇装:HATCH Collection
2019/09/24 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
美术教师岗位职责
2014/03/18 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
pycharm 如何查看某一函数源码的快捷键
2021/05/12 Python
Python爬虫中urllib3与urllib的区别是什么
2021/07/21 Python
nginx从安装到配置详细说明(安装,安全配置,防盗链,动静分离,配置 HTTPS,性能优化)
2022/02/12 Servers