详解使用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的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
Sep 28 Javascript
通过JavaScript控制字体大小的代码
Oct 04 Javascript
jQuery中each()方法用法实例
Dec 27 Javascript
JQuery悬停控制图片轮播——代码简单
Aug 05 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
微信小程序 教程之注册程序
Oct 17 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
ES6 javascript的异步操作实例详解
Oct 30 Javascript
浅谈super-vuex使用体验
Jun 25 Javascript
vscode配置vue下的es6规范自动格式化详解
Mar 20 Javascript
关于AngularJS中几种Providers的区别总结
May 17 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
Aug 03 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添加图片水印、压缩、剪切的封装类
2015/08/17 PHP
PHP面向对象程序设计之对象生成方法详解
2016/12/02 PHP
js树形控件脚本代码
2008/07/24 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
2009/12/15 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
简单介绍JavaScript中字符串创建的基本方法
2015/07/07 Javascript
jQuery中使用animate自定义动画的方法
2016/05/29 Javascript
JavaScript中点击事件的写法
2016/06/28 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
ES6新特性之模块Module用法详解
2017/04/01 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
JavaScript实现购物车基本功能
2017/07/21 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
详解Vue组件实现tips的总结
2017/11/01 Javascript
vue中实现左右联动的效果
2018/06/22 Javascript
30分钟用Node.js构建一个API服务器的步骤详解
2019/05/24 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
Python使用Supervisor来管理进程的方法
2015/05/28 Python
详解python调度框架APScheduler使用
2017/03/28 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
python采集百度搜索结果带有特定URL的链接代码实例
2019/08/30 Python
使用python实现男神女神颜值打分系统(推荐)
2019/10/31 Python
PyQt5+python3+pycharm开发环境配置教程
2020/03/24 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
Skyscanner波兰:廉价航班
2017/11/07 全球购物
草船借箭教学反思
2014/02/03 职场文书
四风个人对照检查材料思想汇报(办公室通用版)
2014/10/07 职场文书
国际残疾人日广播稿范文
2014/10/09 职场文书
先进集体事迹材料范文
2014/12/25 职场文书
开票证明
2015/06/23 职场文书
浙江省杭州市平均工资标准是多少?
2019/07/09 职场文书