博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于React+Webpack+Mobx+Less项目搭建指南
阅读量:6040 次
发布时间:2019-06-20

本文共 2380 字,大约阅读时间需要 7 分钟。

此教程针对 Webpack 为 4.X 版本

Webpack

Webpack 支持零配置,如果 entry 不配置,默认值为 ./src ;如果 output 不写,默认值为 ./dist

Webpack4.X 版本废弃了 CommonsChunkPlugin,需要使用 optimize.splitChunks 来替换。

extract-text-webpack-plugin@4.0.0-beta.0 有很多问题,基于官方推荐,我们使用 mini-css-extract-plugin 来替换。

webpack.config.js 是不能使用 import 命令的,需要把文件名改成 webpack.config.babel.js 才可以。这是一个 webpack 支持的特性,只要你把文件名改成 webpack.config.[loader].js, webpack 就会用相应的 loader 去转换一遍配置文件。

Webpack 新增了 mode 配置,有两个参数,一个为 production,另一个为 development

Babel

Babel 主要是用来把代码转译为 ES5。使用前需要在 webpack.config.babel.js 配置 babel-loader,其次,在新增 .babelrc 文件,在该文件中进行配置一些转译规则。

Mobx

Mobx 是一个简单、可扩展的状态管理库。

Less

LessCSS 的语法基础之上,引入了变量,Mixin(混入),运算以及函数等功能,大大简化了 CSS 的编写,并且降低了 CSS 的维护成本,就像它的名称所说的那样,Less 可以让我们用更少的代码做更多的事情。

详细配置

新建 webpack.config.babel.js 文件,并作如下配置。

import path from 'path';// 清除文件夹内文件插件import CleanWebpackPlugin from 'clean-webpack-plugin';// 生成 HTML 文件插件import HtmlWebpackPlugin from 'html-webpack-plugin';import MiniCssExtractPlugin from 'mini-css-extract-plugin';// 打开浏览器插件import OpenBrowserPlugin from 'open-browser-webpack-plugin';import alias from './webpack.alias.js';const port = 9676;module.exports = {    // 入口文件    entry: './src/index.js',    // 输出    output: {        // 输出文件名        filename: 'bundle.js',        // 输出路径        path: path.resolve(__dirname, 'dist')    },    // loader    module: {        rules: [{            test: /\.js[x]?$/,            loader: 'babel-loader',            // node_modules 不使用 babel-loader            exclude: /node_modules/        }, {            test: /\.less$/,            use: [MiniCssExtractPlugin.loader, 'css-loader', 'less-loader']        }, {            test: /\.css/,            use: [MiniCssExtractPlugin.loader, 'css-loader']        }]    },    resolve: {        alias: alias,        extensions: ['.js', '.jsx']    },    plugins: [        new HtmlWebpackPlugin({            title: 'Blog',            template: path.join(__dirname, 'template.ejs')        }),        new MiniCssExtractPlugin({            filename: '[name].css',            allChunks: true        }),        new CleanWebpackPlugin('./dist/*.*'),        new OpenBrowserPlugin({
url: `http://localhost:${port}`}) ], devServer: { // 端口号 port: port, host: '0.0.0.0', compress: true, proxy: { '/api/*': { target: 'http://localhost:8987' } } }};复制代码

转载地址:http://hnlhx.baihongyu.com/

你可能感兴趣的文章
UVA 123 Searching Quickly
查看>>
intellij 出现“Usage of API documented as @since 1.6+”的解决办法(转)
查看>>
安装Eclipse插件长时间卡在 calculating requirements and dependencies
查看>>
Cocos2d-x3.0游戏实例之《别救我》第六篇——从代码中获取UI控件
查看>>
【数据结构与算法】快速排序
查看>>
第二百五十二节,Bootstrap项目实战-首页
查看>>
Gray Code
查看>>
python 依照list中的dic的某key排序
查看>>
机器学习--详解人脸对齐算法SDM-LBF
查看>>
js中几种实用的跨域方法原理详解
查看>>
Go语言的基准测试简单示例
查看>>
PLSQL连接Oracle 数据库配置详解
查看>>
load函数
查看>>
gsp页面标签
查看>>
[Winform]Media Player播放控制面板控制,单击事件截获
查看>>
慎用Outline ,UGUI Outline实现原理分析
查看>>
像音乐播放App一样移动背景
查看>>
Cocos2d-x Vector——vector iterators incompatible
查看>>
Linux-----Ubuntu设置开机启动模式
查看>>
实体店里充话费要怎么弄
查看>>