React webpack4 es6搭建PC开发脚手架

因webpack4废弃了之前的属性比如loder改为rule等,react高版本也不再支持react.render
故对pc搭建开发脚手架更新
第一步:

新建文件reactpc
cd reactpc
npm init

这时候你会发现reactpc目录下已经多了package,json
第二步:
安装依赖,一大堆依赖

npm install react -s -d react-dom -s babel-core -s -d   babel-loader -s -d  css-loader -s -d   react-hot-loader -s -d webpack-dev-server -s -d  react-router -s -d  webpack -s -d    webpack-cli -s -d   babel-preset-react -s -d  babel-preset-es2015 -s -d    babel-preset-stage-0 -s -d 

下面对上边的依赖做个说明


 1. -s -d 分别表示安装依赖到生产环境和开发环境
 2. react和react-dom是开发react必须的核心
 3. babel-core:babel转译器本身,提供了babel的转译API,如babel.transform等,用于对代码进行转译。像webpack的babel-loader就是调用这些API来完成转译过程的。ES6现在浏览器都支持的不够, nodejs的v8同样, 即使用use strict, 很多特性也都不支持,babel可以把es6转成传统的javascript, 就可以正常在浏览器中运行了, es6是发展方向
 4. css-loader解释(interpret) @import 和 url() ,会 import/require() 后再解析(resolve)它们。
 5. react-hot-loader 不会刷新整个页面,它只替换了修改的代码,做到了页面的局部刷新。但它需要依赖 webpack 的 HotModuleReplacement 热加载插件
 6. webpack-dev-server 能做到只要代码修改了页面也自动更新了,但webpack-dev-server 的热加载是开发人员修改了代码,代码经过打包,重新刷新了整个页面
 7. react-router 路由
 8. webpack webpack环境
 9. webpack-cli 在webpack 3中,webpack本身和它的CLI以前都是在同一个包中,但在第4版中,他们已经将两者分开来更好地管理它们。所以可以尝试全局安装webpack-cli
 10.  babel-preset-react -s -d  babel-preset-es2015 -s -d    babel-preset-stage-0 -s -d 是把浏览器不支持的js转译成浏览器支持的js(这也是babel的核心意义)

第三步:

如果你之前没用过webpack,可以先去官网看下,解释的也挺清楚的
官网地址:https://www.webpackjs.com/concepts/
新建webpack.config.js

const path=require('path');
const webpack = require('webpack');
module.exports = {
    mode: "development", //webpack要指定编译类型,可在此处写,也可用命令写
    entry: [
        'webpack/hot/only-dev-server',
        "./src/main.js"//入口文件
    ],
    output: {
        path: path.resolve(__dirname, './build'),//输出目录及文件
        filename: 'bundle.js'
    },
    module: {
        rules: [//此处不能在用loders,需用rules
            {
                test: /\.js|jsx$/,
                loader: 'babel-loader',//转化成浏览器能解析的js
                query:{
                    presets:['es2015','react','stage-0'] //必须先安装babel-preset-es2015和babel-preset-react
                }
            },
            { test: /\.css$/, use: "style!css" }//css样式处理
        ]
    },
    plugins: [
        new webpack.NoEmitOnErrorsPlugin(),//错误处理
        new webpack.HotModuleReplacementPlugin()//热更新插件和react-hot-loader配合使用
    ],

}

新建index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app"></div>
<script src="./build/bundle.js"></script>
</body>
</html>

新建src文件夹,在其内新建main.js

import React from 'react';
import ReactDOM from 'react-dom';//react高版本需用react-dom
ReactDOM.render(
    <h1>Hello, world!</h1>,
    document.getElementById('app')
);

第四步:
在package.json 里加入

 "scripts": {
    "start": "webpack-dev-server --hot --progress --colors",
    "build": "webpack --p --progress --colors"
  },

整体文件:

{
  "name": "reactagain",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --hot --progress --colors",
    "build": "webpack --p --progress --colors"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-es2015": "^6.24.1",
    "css-loader": "^1.0.1",
    "react": "^16.6.3",
    "react-dom": "^16.6.3",
    "react-hot-loader": "^4.3.12",
    "react-router": "^4.3.1",
    "webpack": "^4.25.1",
    "webpack-cli": "^3.1.2",
    "webpack-dev-server": "^3.1.10"
  },
  "devDependencies": {
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-0": "^6.24.1"
  }
}

至此已经完成了react的脚手架搭建
现在可以直接运行

npm start

也可以先编译:

npm run build

快起尝试吧

如果有报错,可尝试,把node_modules删除,然后把上述的package.json复制到项目中,然后npm install,这样可解决因为babel版本不一致导致的报错,比如babel版本既有7又有6版本的情况

最后提供源代码下载地址:https://download.csdn.net/download/qq_34117170/10787025

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值