记录一下前端开发中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. python/c++ 混合编程

    官方简介 pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, ...

  2. 2133D-Chicken Jockey

    简化题意 从下到上有一排小鸡叠起来,他们的生命值依次为\(h_1,h_2,...,h_n\),现在史蒂夫要将他们消灭,史蒂夫每次可以选择任意一只小鸡进行挥刀,使它生命值\(-1\),如果这只小鸡的生命 ...

  3. js正则表达式及RegExp转义踩坑实录

    js正则表达式及RegExp转义踩坑实录 //"12[3456".match(/12\[/g) //new RegExp("12\\[","gm&qu ...

  4. 西门子S7-200的VB、VW和VD

    西门子S7-200的VB.VW和VDs7-200中vd和VW有什么区别? VD是双字 VW是字 V表示变量储存区 字节.字或双字存取欲存取字节.字或双字,指定地址,地址包含区域标识符,指定数据大小的字 ...

  5. ApiTemplate:.net后端项目模板完善与总结

    ApiTemplate后端项目开发模板,发布也有一段时间了.为了补充应用场景,以及详细说明本人总结的一些开发经验,现已常见的<用户/登录权限验证>功能模块来进行详细的讲解.我会以为开发此模 ...

  6. Oracle 11g 单实例下实例监听日志报错“WARNING: Subscription for node down event still pending”

    Oracle 11g 单实例下实例监听日志[oracle@dbserver ~]$ more /u01/app/oracle/diag/tnslsnr/dbserver/listener/trace/ ...

  7. MySQL 切换有哪些策略

    主备延迟 怎么在备库查看主备延迟 在备库执行show slave status, 结果的seconds_behind_master 就是当前备库延迟了多少秒. 主备延迟的原因 从库的机器配置比较差 备 ...

  8. BOE(京东方)“向新2025”年终媒体智享会首站落地上海 六大维度创新开启产业发展新篇章

    12月17日,BOE(京东方)以"向新2025"为主题的年终媒体智享会在上海启动.正值BOE(京东方)新三十年的开局之年,活动全面回顾了2024年BOE(京东方)在各领域所取得的领 ...

  9. 从 “盲调” 到 “精准优化”:SQL Server 表统计信息实战指南

    本文核心要旨在于:SQL Server 表统计信息作为元数据对象,宛如数据分布的 "指南针",精准存储着数据分布信息,为查询优化器提供关键依据,助力其生成高效的查询执行计划.在维护 ...

  10. 【LeetCode】122. 买卖股票的最佳时机 II

    122. 买卖股票的最佳时机 II 题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格. 在每一天,你可以决定是否购买和/或出售股票.你在任何时候 最多 只 ...