记录一下前端开发中webpack的传统发布环境配置

const { resolve } = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin'); // 定义nodejs环境变量:决定使用package.json中定义的browserslist的哪个环境
process.env.NODE_ENV = 'production'; // 提取复用loader
const commonCssLoader = [
MiniCssExtractPlugin.loader,
'css-loader',
{
// 还需要在package.json中定义browserslist
loader: 'postcss-loader',
options: {
ident: 'postcss',
plugins: () => [require('postcss-preset-env')()]
}
}
]; module.exports = {
entry: './src/js/index.js',
output: {
filename: 'js/built.js',
path: resolve(__dirname, 'build')
},
module: {
rules: [
{
test: /\.css$/,
use: [...commonCssLoader]
},
{
test: /\.less$/,
use: [...commonCssLoader, 'less-loader']
},
/*
正常来讲,一个文件只能被一个loader处理。
当一个文件要被多个loader处理,那么一定要指定loader执行的先后顺序:
先执行eslint 再执行babel
*/
{
// 在package.json中eslintConfig --> airbnb
test: /\.js$/,
exclude: /node_modules/,
// 优先执行
enforce: 'pre',
loader: 'eslint-loader',
options: {
// 自动修复
fix: true
}
},
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
presets: [
[
'@babel/preset-env',
{
useBuiltIns: 'usage',
corejs: {version: 3},
targets: {
chrome: '60',
firefox: '50'
}
}
]
]
}
},
{
test: /\.(jpg|png|gif)/,
loader: 'url-loader',
options: {
limit: 8 * 1024,
name: '[hash:10].[ext]',
outputPath: 'imgs',
esModule: false
}
},
{
test: /\.html$/,
loader: 'html-loader'
},
{
exclude: /\.(js|css|less|html|jpg|png|gif)/,
loader: 'file-loader',
options: {
outputPath: 'media'
}
}
]
},
plugins: [
new MiniCssExtractPlugin({
filename: 'css/built.css'
}),
new OptimizeCssAssetsWebpackPlugin(),
new HtmlWebpackPlugin({
template: './src/index.html',
// 压缩html
minify: {
collapseWhitespace: true,
removeComments: true
}
})
],
mode: 'production'
};

前端开发--webpack--发布环境配置的更多相关文章

  1. webstorm前端开发工具vue环境配置及运行项目

    1:webstorm的安装:2:node.js的安装3:安装Git4:vue-cli 安装前面两步就可以把项目启动了,安装Git主要是打开命令窗口,这样就可以用liunx命令了,原理跟cmd差不多 V ...

  2. VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址

    转载地址: https://blog.csdn.net/gebitan505/article/details/58166055 VUE 利用 webpack 给生产环境和发布环境配置不同的接口地址 前 ...

  3. webpack根据开发与生产环境配置不同变量--webpack.DefinePlugin

    webpack有一个DefinePlugin接口,可以实现根据开发与生产环境配置不同变量.范例如下: 需求:开发环境请求baseUrl = '':生产环境请求 baseUrl = 'http://lo ...

  4. 详解LUA开发工具及其环境配置

    LUA开发工具及其环境配置是本文要介绍的内容,主要是来了解并学习lua开发工具的使用和环境的配置,第一次接触LUA的话,就跟本人一起学习吧.看我能不能忽悠到你. LUA是语言,那么一定有编写的工具.第 ...

  5. Windows下OpenFOAM开发及使用环境配置指南 (2)【转载】

    转载自:http://openfoam.blog.sohu.com/158751915.html *************************************************** ...

  6. Windows下OpenFOAM开发及使用环境配置指南 (1)【转载】

    转载自:http://openfoam.blog.sohu.com/158614863.html *************************************************** ...

  7. webpack开发与生产环境配置

    前言 作者去年就开始使用webpack, 最早的接触就来自于vue-cli.那个时候工作重点主要也是 vue 的使用,对webpack的配置是知之甚少,期间有问题也是询问大牛 @吕大豹.顺便说一句,对 ...

  8. VUE 利用webpack 给生产环境和发布环境配置不同的接口地址

    第一步,分别设置不同的接口地址 首先,我们分别找到下面的文件: /config/dev.env.js /config/prod.env.js 其实,这两个文件就是针对生产环境和发布环境设置不同参数的文 ...

  9. vue cli脚手架项目利用webpack给生产环境和发布环境配置不同的接口地址或者不同的变量值。

    废话不多说,直接进入正题,此文以配置不同的接口域名地址为例子 项目根目录下有一个config文件夹,基础项目的话里面至少包括三个文件, 1.dev.env.js 2.index.js 3.prod.e ...

  10. 【前端】vue.js环境配置以及实例运行简明教程

    vue.js环境配置以及实例运行简明教程 声明:本文档编写参考如下两篇博客,是对它们的修改与补充,欢迎点击链接查看原文: 原文1:vue.js在windows本地下搭建环境和创建项目 原文2:Vue. ...

随机推荐

  1. 2021中国BPM流程管理软件大盘点

    1. 现在国内流程管理软件有很多,做得比较好的有: 国内:炎黄.奥哲H3.FlowPortal 国外:K2.Ultimus 2. 根据产品定位不同,市场上流程管理软件可分为3种形态: OA:泛微.致远 ...

  2. 如何禁用Console.WriteLine等输出

    又想到一个靠谱点的方法,不过调用会有些麻烦,参考下面的代码. class ConsoleOut : TextWriter { private ConsoleOut(TextWriter output) ...

  3. Pyqt5设置窗口的背景

    https://blog.csdn.net/weixin_63904583/article/details/130495279 MainWindow.setStyleSheet("#Main ...

  4. VMware授权方式

    1.更新与支持:VMware订阅包括产品更新.安全补丁以及技术支持.在订阅有效期内,可以享受最新版本的软件功能,获得技术支持.而永久授权不包含产品更新或长时间的技术支持.购买时所获取的版本是永远可用的 ...

  5. 【案例+1】HarmonyOS官方模板优秀案例 第7期:金融理财 · 记账应用

    [案例+1]HarmonyOS官方模板优秀案例 (第7期:金融理财 · 记账应用) 鸿蒙生态为开发者提供海量的HarmonyOS模板/组件,助力开发效率原地起飞 ★ 一键直达生态市场组件&模板 ...

  6. tableViewCell重用

    转载请注明出处!!! 常规配置如下 当超过tableView显示的范围的时候 后面显示的内容将会和前面重复或者出现内容不显示的情况.这就涉及到重用了. 1 // 这样配置的话超过页面显示的内容会重复出 ...

  7. 【EF Core】再谈普通实体关系与 Owned 关系的区别

    在很多个世纪前,老周曾写过实体之间普通关系(一对一,一对多,多对多)与 Owned 关系的区别.不过,那次写得比较粗浅,逼格不够高,于是,老周厚着脸皮地决定重新写一下. 首先,为什么这次老周用原单词 ...

  8. phpkg 让 PHP 摆脱 Composer 依赖地狱

    phpkg 让 PHP 摆脱 Composer 依赖地狱 Composer 挺好,但 PHP 还能更强 写 PHP 的都知道,Composer 用起来很顺手:composer require.vend ...

  9. JFinal快速入门-开始-001

    JFinal快速入门-001 目录 JFinal 框架简介 核心特性与优势 环境准备与 Maven 配置 创建第一个 JFinal 应用 Hello World 示例详解 启动应用与热加载机制 MVC ...

  10. 389-基于KU5P的双路100G光纤网络加速计算卡

    基于KU5P的双路100G光纤网络加速计算卡 一.板卡概述 基于Xilinx UltraScale+16 nm KU5P芯片方案基础上研发的一款双口100 G FPGA光纤以太网PCI-Express ...