webpack中Development和Production模式的区分打包
mode: 'development',
devtool: 'cheap-module-eval-source-map',
mode: 'production',
devtool: 'cheap-module-source-map',
"scripts": {
"dev": "webpack-dev-server --config webpack.dev.js",
"build": "webpack --config webpack.prod.js",
},
npm install webpack-merge -D
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
module.exports = {
// 这个文件要做打包,从哪一个文件开始打包
entry: {
main: './src/index.js'
},
// 打包模块不知道该怎么办,就去模块配置里面该怎么办
module: {
// 规则
rules: [{
test: /\.js$/,
// 如果你的这个js文件在node_modules里面,就不使用babel-loader了
exclude: /node_modules/,
loader: 'babel-loader' ,
},{
// 假设是以jpg结尾的,我需要一个load帮助我们去打包
test: /\.jpg|png|gif$/,
use: {
loader: 'url-loader',
options: {
// 原来是什么名字,打包好还是什么名字
name: '[name]_[hash].[ext]',
// 当我碰到jpg,png,gif的时候,打包到根目录下到imgs文件夹里
outputPath: 'imgs/',
limit: 2048
}
}
},{
test: /\.eot|ttf|svg|woff$/,
use: {
loader: 'file-loader'
}
},{
// 假设是以css结尾的,我需要一个load帮助我们去打包
test: /\.scss$/,
// 需要两个loader,所以不能是个对象,需要是个数组
use: [
'style-loader',
{
loader: 'css-loader',
options: {
importLoaders: 2
}
},
'sass-loader',
'postcss-loader'
]
},{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
'postcss-loader'
]
}]},
// HtmlWebpackPlugin会在打包结束后,自动生成一个html文件,并把打包生成的js自动引入到这个html文件中
plugins: [
new HtmlWebpackPlugin({
template: 'src/index.html'
}),
new CleanWebpackPlugin()
],
// 打包文件要放到哪里去,就配置在output这个对象里
output: {
// 打包好的文件名字
filename: '[name].js',
/**
* 打包出的文件要把他放到哪一个文件夹下,path后面要放一个绝对路径
* __dirname指的是webpack.config.js所在的当前目录的这个路径
* 下面这个结合就是一个绝对路径
*/
path: path.resolve(__dirname, 'dist')
}
}
const webpack = require('webpack');
const merge = require('webpack-merge');
const commonConfig = require('./webpack.common.js');
const devConfig = {
/**
* 打包模式,不配置会警告,但底层还是会去配置默认的,就是production
* production: 压缩模式,被压缩的代码
* development: 开发模式,不压缩的代码
*
*/
mode: 'development',
/**
* cheap:在生成source-map的时候可以不带列信息,只带行信息就可以了
* 同时不要对我load代码的source-map。只要对我的业务代码进行source-map生成
* 这种方式提示的错误比较全,打包速度比较快,
*/
devtool: 'cheap-module-eval-source-map',
// 起个服务器
devServer: {
// 这个意思是服务器要生成在哪个文件夹下
contentBase:'./dist',
// 启动的时候自动打开浏览器,然后自动访问这个服务器地址
open:true,
// 开启Hot Module Replacement
hot: true
},
// HtmlWebpackPlugin会在打包结束后,自动生成一个html文件,并把打包生成的js自动引入到这个html文件中
plugins: [
new webpack.HotModuleReplacementPlugin()
]
}
module.exports = merge(commonConfig, devConfig);
const merge = require('webpack-merge');
const commonConfig = require('./webpack.common.js');
const prodConfig = {
/**
* 打包模式,不配置会警告,但底层还是会去配置默认的,就是production
* production: 压缩模式,被压缩的代码
* development: 开发模式,不压缩的代码
*
*/
mode: 'production',
/**
* cheap:在生成source-map的时候可以不带列信息,只带行信息就可以了
* 同时不要对我load代码的source-map。只要对我的业务代码进行source-map生成
* 这种方式提示的错误比较全,打包速度比较快,
*/
devtool: 'cheap-module-source-map'
}
module.exports = merge(commonConfig, prodConfig);
"scripts": {
"dev": "webpack-dev-server --config ./build/webpack.dev.js",
"build": "webpack --config ./build/webpack.prod.js",
}
webpack中Development和Production模式的区分打包的更多相关文章
- webpack + vue 在dev和production模式下的小小区别
上周的某一天,和一位同样是前端技术极度爱好的开发者朋友聊天,他在提出了一个问题,他写的vue程序为什么在dev模式运行良好,而在production模式就直接报错了.这让我感到惊讶,还有这么神奇的事情 ...
- 使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development、production)
使用 vue-cli-service inspect 来查看一个 Vue CLI 3 项目的 webpack 配置信息(包括:development.production) --mode 指定环境模式 ...
- 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何
基于 Vue.js 之 iView UI 框架非工程化实践记要 像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...
- 在webpack中区分环境变量
webpack 中的定义插件可以帮我们定义一些全局变量,使用方法如下: plugins: [ new webpack.DefinePlugin({ NODE_ENV: JSON.stringify(' ...
- [Webpack] Create Separate webpack Configs for Development and Production with webpack-merge
The development and production modes in webpack optimize the output in different ways. In developmen ...
- 20 区分webpack中导入vue和普通网页使用script导入Vue的区别
回顾包的查找规则: 1.找项目根目录中有没有node_modules的文件夹 2.在node_modules中根据包名,找对应的vue文件夹 3.在vue文件夹中,找一个叫做package.json的 ...
- 理解webpack中的process.env.NODE_ENV
参考资料 一. process 要理解 process.env.NODE_ENV 就必须要了解 process,process 是 node 的全局变量,并且 process 有 env 这个属性,但 ...
- webpack中package.json中的Script
初始化项目 cnpm init -y ,会自动生成一个package.json文件:主要是显示项目的名称.版本.作者.协议等信息 在package.json中scripts中配置:(运行简化) 开发模 ...
- webpack打包出现WARNING in configuration The 'mode' option has not been set, webpack will fallback to 'production' for this value. 错误
打包运行的时候出现以下错误 WARNING in configurationThe 'mode' option has not been set, webpack will fallback to ' ...
随机推荐
- Educational Codeforces Round 55 (Rated for Div. 2) C. Multi-Subject Competition 【vector 预处理优化】
传送门:http://codeforces.com/contest/1082/problem/C C. Multi-Subject Competition time limit per test 2 ...
- vue.js加入购物车小球动画
生成一个动画小球的div,并且生成五个小球,五个是为了生成一定数量的小球来作为操作使用,按照小球动画的速度,一般来说五个也可以保证有足够的小球数量来运行动画 动画的内容分别是外层和内层,外层控制动画小 ...
- TCP-IP and Advanced Topics 课程总结与报告
课程总结 学习了四周十六课的课程,对每一课的知识点进行总结梳理,作出一个树状的知识网络图. 本课程虽然在深度上有所欠缺,但却更有利于结构上的梳理,加深总体上对网络的理解. 本课程从Internet出发 ...
- 阿里前端测试题--关于ES6中Promise函数的理解与应用
今天做了阿里前端的笔试题目,原题目是这样的 //实现mergePromise函数,把传进去的数组顺序先后执行,//并且把返回的数据先后放到数组data中 const timeout = ms => ...
- JAVA并发-线程状态
一.线程基本状态 新建:线程已创建但start()方法还没执行 就绪(可运行):start()方法已运行,但还没被选择 运行:从就绪线程中选择出某一个线程进行run()操作 阻塞(不可运行):线程正在 ...
- POJ 2208--Pyramids(欧拉四面体体积计算)
Pyramids Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3451 Accepted: 1123 Specia ...
- Linux在线安装jdk8,并配置环境变量
1.创建相关目录:下载目录.安装目录 下载目录: cd / 2.下载jdk8到目录 下载前先跳转到下载目录,比如希望最后压缩包下载到/home/bak/下, 则先创建bak目录,命令如下: 注意:如果 ...
- linux系统中用户
一.用户身份介绍: 1.系统管理员用户,UID(User IDentification) :0, 2.系统用户,UID为1~999,默认的程序都有独立的系统用户负责,运行,进而控制被破坏的范围, 3. ...
- 创建jq插件步骤
无意看了这篇<jQuery插件开发精品教程,让你的jQuery提升一个台阶>文章,现在做一下总结. 一.jQuery插件的创建可以有三种方法 1.通过$.extend()来扩展jQuery ...
- Css Sprite(雪碧图、精灵图)<图像拼合技术>
一.精灵图使用场景: 二.Css Sprite(优点) 减少图片的字节. 减少网页的http请求,从而大大的提高页面的性能. 解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不 ...