webpack打包js文件及部署的实现方法


Posted in Javascript onDecember 18, 2017

下面看下webpack打包js文件的实现代码

const path = require('path')
const webpack = require('webpack')
const htmlWebpackPlugin = require('html-webpack-plugin')
// 每次打包之前,自动删除文件夹
const cleanWebpackPlugin = require('clean-webpack-plugin')
// 分离 css 到独立的文件中
const ExtractTextPlugin = require("extract-text-webpack-plugin");
// 压缩 css 资源文件
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
module.exports = {
// 入口
entry: {
// 项目代码入口
app: path.join(__dirname, './src/js/main.js'),
// 第三方包入口
vendor: ['vue', 'vue-router', 'vue-resource', 'vuex', 'moment', 'mint-ui', 'vue-preview']
},
// 出口
output: {
path: path.join(__dirname, './dist'),
// 设置公共路径
publicPath: '/',
// 此处的name由 entry 中的属性名决定
// chunk 表示一个代码块(webpack模块化分析代码后的结构)
filename: 'js/[name].[chunkhash].js',
// ------添加 chunkFilename, 指定输出js文件的名称------
chunkFilename: 'js/[name].[chunkhash].js',
},
// 配置loader,处理不同的静态资源
module: {
rules: [
{ test: /\.js$/, use: 'babel-loader', exclude: /node_modules/ },
{
test: /\.css$/,
// 抽离和压缩css
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
},
{
test: /\.(sass|scss)$/,
// 抽离和压缩 scss
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: ['css-loader', 'sass-loader']
})
},
{
test: /\.(png|jpg|jpeg|gif|bmp|webp)$/, use: {
loader: 'url-loader',
options: {
limit: 6518,
// name: 'images/imgs-[hash:7].[ext]'
// [name] 使用图片的名称作为最终生成的文件名称
// [ext] 使用图片的默认后缀
// name: '[name].[ext]'
// images/ 表示图片生成后存放的路径
name: 'images/[hash:10].[ext]'
}
}
},
{
// 参考上面图片的配置,进行配置即可
test: /\.(ttf|woff|woff2|svg|eot)$/,
use: {
loader: 'url-loader',
options: {
limit: 2048,
name: 'fonts/[hash:10].[ext]'
}
}
},
{ test: /\.vue$/, use: 'vue-loader' },
]
},
// source-map 定位错误的
// devtool: 'cheap-module-source-map',
// 配置 htmlWebpackPlugin
plugins: [
new htmlWebpackPlugin({
template: path.join(__dirname, './src/index.html'),
filename: 'index.html',
// 压缩HTML
minify: {
// 移除空白
collapseWhitespace: true,
// 移除注释
removeComments: true,
// 移除属性中的双引号
removeAttributeQuotes: true
}
}),
// 自动删除dist目录
// 参数:表示要删除文件的路径,可以是多个
new cleanWebpackPlugin(['./dist']),
// 分离第三方包(公共包文件)
new webpack.optimize.CommonsChunkPlugin({
// 第三方包入口名称,对应 entry 中的 vendor 属性
// 将 entry 中指定的 ['vue', 'vue-router', 'vue-resource'] 打包到名为 vendor 的js文件中
name: 'vendor',
}),
// 压缩js代码
new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
// 压缩
compress: {
// 移除警告
warnings: false
}
}),
// 指定环境,设置为生产环境
// 开发期间我们使用vue的为压缩版本,项目上下了,只需要将环境修改为
// 生产环境,那么,vue就会自动变为 压缩版本
new webpack.DefinePlugin({
'process.env': {
'NODE_ENV': JSON.stringify('production')
}
}),
// 通过插件抽离 css (参数)
// 参数:表示将抽离的css文件生成到哪个目录中
new ExtractTextPlugin("css/style.css"),
// 压缩抽离之后的css
new OptimizeCssAssetsPlugin(),
// 启用 scope hoisting
new webpack.optimize.ModuleConcatenationPlugin()
]
}

下面给大家介绍下webpack打包后的JS文件如何部署?

webpack打包后的JS文件,怎样发布到生产环境使用?能发布到TOMCAT吗?还是需要其它的部署环境?

打包出来的文件你把它当成普通的js文件就好了,最不济,你复制到想放的目录在页面中引用,jquery.min,js怎么用,webpack打包出来的js文件你也怎么用。

总结

以上所述是小编给大家介绍的webpack打包js文件及部署的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JQuery下关于$.Ready()的分析
Dec 13 Javascript
Jquery 滑入滑出效果实现代码
Mar 27 Javascript
JavaScript中获取元素索引的函数
Sep 10 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
javascript中关于break,continue的特殊用法与介绍
May 24 Javascript
javascript从定义到执行 你不知道的那些事
Jan 04 Javascript
Markdown+Bootstrap图片自适应属性详解
May 21 Javascript
js仿小米官网图片轮播特效
Sep 29 Javascript
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
javascript+css3开发打气球小游戏完整代码
Nov 28 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
Sep 14 Javascript
基于JavaScript实现简单的轮播图
Mar 03 Javascript
react+redux的升级版todoList的实现
Dec 18 #Javascript
总结js中的一些兼容性易错的问题
Dec 18 #Javascript
详解最新vue-cli 2.9.1的webpack存在问题
Dec 16 #Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 #jQuery
详解如何使用 vue-cli 开发多页应用
Dec 16 #Javascript
详解VUE 数组更新
Dec 16 #Javascript
详解如何用模块化的方式写vuejs
Dec 16 #Javascript
You might like
PHP setcookie() cannot modify header information 的解决方法
2009/01/09 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
Jquery ui css framework
2010/06/28 Javascript
HTML5附件拖拽上传drop & google.gears实现代码
2011/04/28 Javascript
Javascript核心读书有感之表达式和运算符
2015/02/11 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
详解javascript中原始数据类型Null和Undefined
2015/12/17 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
jquery dataview数据视图插件使用方法
2016/12/23 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
一道面试题引发的对javascript类型转换的思考
2017/03/06 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
修改vue+webpack run build的路径方法
2018/09/01 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
Python中文编码那些事
2014/06/25 Python
Python对小数进行除法运算的正确方法示例
2014/08/25 Python
Python中字符串的常见操作技巧总结
2016/07/28 Python
python 定时修改数据库的示例代码
2018/04/08 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
python中使用 xlwt 操作excel的常见方法与问题
2019/01/13 Python
python Selenium实现付费音乐批量下载的实现方法
2019/01/24 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python requests模块cookie实例解析
2020/04/14 Python
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
建筑项目策划书
2014/01/13 职场文书
广告词串烧
2014/03/19 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
呼啸山庄读书笔记
2015/06/29 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
springboot利用redis、Redisson处理并发问题的操作
2021/06/18 Java/Android