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 相关文章推荐
setTimeout和setInterval的浏览器兼容性分析
Feb 27 Javascript
动态添加js事件实现代码
Mar 12 Javascript
window.dialogArguments 使用说明
Apr 11 Javascript
一个JS函数搞定网页标题(title)闪动效果
May 13 Javascript
Jquery焦点与失去焦点示例应用
Jun 10 Javascript
jQuery基础知识小结
Dec 22 Javascript
javascript实现ecshop搜索框键盘上下键切换控制
Mar 18 Javascript
javascript递归回溯法解八皇后问题
Apr 22 Javascript
jquery利用json实现页面之间传值的实例解析
Dec 12 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
Jul 21 Javascript
react基本安装与测试示例
Apr 27 Javascript
详解Vue的异步更新实现原理
Dec 22 Vue.js
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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
hessian 在PHP中的使用介绍
2010/12/13 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
深入解析PHP的Yii框架中的event事件机制
2016/03/17 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
2016/03/25 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
Yii 框架使用数据库(databases)的方法示例
2020/05/19 PHP
用JS实现的一个include函数
2007/07/21 Javascript
分析 JavaScript 中令人困惑的变量赋值
2007/08/13 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
jquery拖动插件(jquery.drag)使用介绍
2013/06/18 Javascript
使用jquery.validate自定义方法实现"手机号码或者固话至少填写一个"的逻辑验证
2014/09/01 Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
2016/05/20 Javascript
jQuery过滤选择器经典应用
2016/08/18 Javascript
原生JS获取元素的位置与尺寸实现方法
2017/10/18 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
教你如何用node连接redis的示例代码
2018/07/12 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
解决vue cli使用typescript后打包巨慢的问题
2019/09/30 Javascript
python实现每次处理一个字符的三种方法
2014/10/09 Python
正确理解python中的关键字“with”与上下文管理器
2017/04/21 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
番木瓜健康和保健产品第一大制造商:Herbal Papaya
2017/04/25 全球购物
Staples英国官方网站:办公用品一站式采购
2017/10/06 全球购物
以特惠价提供在线奢侈品购物:FRMODA.com
2018/01/25 全球购物
中东最大的在线宠物店:Dubai Pet Food
2020/06/11 全球购物
机械制造毕业生求职信
2014/03/03 职场文书
房产代理公证处委托书
2014/04/04 职场文书
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技