webpack打包js文件及部署的实现方法
下面看下webpack打包js文件的实现代码
constpath=require('path') constwebpack=require('webpack') consthtmlWebpackPlugin=require('html-webpack-plugin') //每次打包之前,自动删除文件夹 constcleanWebpackPlugin=require('clean-webpack-plugin') //分离css到独立的文件中 constExtractTextPlugin=require("extract-text-webpack-plugin"); //压缩css资源文件 constOptimizeCssAssetsPlugin=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:[ newhtmlWebpackPlugin({ template:path.join(__dirname,'./src/index.html'), filename:'index.html', //压缩HTML minify:{ //移除空白 collapseWhitespace:true, //移除注释 removeComments:true, //移除属性中的双引号 removeAttributeQuotes:true } }), //自动删除dist目录 //参数:表示要删除文件的路径,可以是多个 newcleanWebpackPlugin(['./dist']), //分离第三方包(公共包文件) newwebpack.optimize.CommonsChunkPlugin({ //第三方包入口名称,对应entry中的vendor属性 //将entry中指定的['vue','vue-router','vue-resource']打包到名为vendor的js文件中 name:'vendor', }), //压缩js代码 newwebpack.optimize.UglifyJsPlugin({ sourceMap:true, //压缩 compress:{ //移除警告 warnings:false } }), //指定环境,设置为生产环境 //开发期间我们使用vue的为压缩版本,项目上下了,只需要将环境修改为 //生产环境,那么,vue就会自动变为压缩版本 newwebpack.DefinePlugin({ 'process.env':{ 'NODE_ENV':JSON.stringify('production') } }), //通过插件抽离css(参数) //参数:表示将抽离的css文件生成到哪个目录中 newExtractTextPlugin("css/style.css"), //压缩抽离之后的css newOptimizeCssAssetsPlugin(), //启用scopehoisting newwebpack.optimize.ModuleConcatenationPlugin() ] }
下面给大家介绍下webpack打包后的JS文件如何部署?
webpack打包后的JS文件,怎样发布到生产环境使用?能发布到TOMCAT吗?还是需要其它的部署环境?
打包出来的文件你把它当成普通的js文件就好了,最不济,你复制到想放的目录在页面中引用,jquery.min,js怎么用,webpack打包出来的js文件你也怎么用。
总结
以上所述是小编给大家介绍的webpack打包js文件及部署的实现方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!