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.combobox中文api和例子,修复了上面的小bug
Mar 28 Javascript
纯js实现div内图片自适应大小(已测试,兼容火狐)
Jun 16 Javascript
简单分析javascript面向对象与原型
May 21 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
drag-and-drop实现图片浏览器预览
Aug 06 Javascript
JQuery实现左右滚动菜单特效
Sep 28 Javascript
jsonp跨域请求数据实现手机号码查询实例分析
Dec 12 Javascript
总结Javascript中的隐式类型转换
Aug 24 Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 Javascript
Canvas放置反弹效果随机图形(实例)
Aug 17 Javascript
详解Vue之计算属性
Jun 20 Javascript
使用vue实现通过变量动态拼接url
Jul 22 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留言本实例代码
2010/05/09 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
php实现递归与无限分类的方法
2015/02/16 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
javascript中将Object转换为String函数代码 (json str)
2012/04/29 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
JavaScript window.location对象
2014/11/14 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
javascript中this关键字详解
2016/12/12 Javascript
jQuery开源组件BootstrapValidator使用详解
2017/06/29 jQuery
JS实现图片居中悬浮效果
2017/12/25 Javascript
基于JavaScript实现抽奖系统
2018/01/16 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
JavaScript使用享元模式实现文件上传优化操作示例
2018/08/07 Javascript
微信小程序出现wx.getLocation再次授权问题的解决方法分析
2019/01/16 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
Handtrack.js库实现实时监测手部运动(推荐)
2021/02/08 Javascript
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python Queue模块详解
2014/11/30 Python
Python3实现简单可学习的手写体识别(实例讲解)
2017/10/21 Python
pandas数据处理基础之筛选指定行或者指定列的数据
2018/05/03 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
美国定制钻石订婚戒指:Ritani
2017/12/08 全球购物
KIEHL’S科颜氏官方旗舰店:源自美国的顶级护肤品牌
2018/06/07 全球购物
土木工程专业大学毕业生求职信
2013/10/13 职场文书
计算机学生求职信范文
2014/01/30 职场文书
三年级班级文化建设方案
2014/05/04 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
天气温馨提示语
2015/07/14 职场文书
学校隐患排查制度
2015/08/05 职场文书
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL
科学家研发出新型速效酶,可在 24 小时内降解塑料制品
2022/04/29 数码科技