美文网首页技术挖掘机-soser
基于webpack的前端工程化开发解决方案探索:

基于webpack的前端工程化开发解决方案探索:

作者: fullbook | 来源:发表于2016-08-23 22:49 被阅读664次

一、代码压缩

A. 压缩HTML
<pre>//根据模板插入css/js等生成最终HTML
new HtmlWebpackPlugin({
favicon:'./src/img/favicon.ico', //favicon路径
filename:'/view/index.html', //生成的html存放路径,相对于 path
template:'./src/view/index.html', //html模板路径
inject:true, //允许插件修改哪些内容,包括head与body
hash:true, //为静态资源生成hash值
minify:{ //压缩HTML文件
removeComments:true, //移除HTML中的注释
collapseWhitespace:true //删除空白符与换行符
}
})</pre>
HtmlWebpackPlugin插件在生成HTML调用了 html-minifier 插件来完成对HTML的压缩,这里我们使用两个配置完成来移除HTML中的注释以及空白符达到压缩的效果,其他的具体的配置参数大家请参考 html-minifier API
B. 压缩JS与CSS
<pre>new webpack.optimize.UglifyJsPlugin({ //压缩代码
compress: {
warnings: false
},
except: ['$super', '$', 'exports', 'require'] //排除关键字
})</pre>

webpack已经内嵌了uglifyJS来完成对JS与CSS的压缩混淆,无需引用额外的插件。
这里需要注意的是压缩的时候需要排除一些关键字,不能混淆,比如$或者require,如果混淆的话就会影响到代码的正常运行。
修改完 webpack配置后,我们就可以运行webpack命令来重新打包了。
这次可以看到dist下输出的Js/css/html都是压缩过的。

二、webpack-dev-server

webpack开发服务器,是webpack官方提供的一个辅助开发工具,它可以自动监控项目下的文件,一旦有修改保存操作,开发服务器就会自动运行webpack 打包命令,帮我们自动将开发的代码重新打包。而且,如果需要的话,还能自动刷新浏览器,重新加载资源。
  Cool!一般前端开发人员都会有两台显示器,一台用于编辑代码,一台用于打开浏览器查看效果。如果配置上webpack-dev-server的话,我们只需要在保存修改后的代码,什么也不用做,webpack就能自动帮我们打包代码,同时自动刷新浏览器,让我们立马看到修改后的效果。

最后,webpack常用的基本配置

<pre>var path=require('path');

var webpack = require('webpack');

var ExtractTextPlugin = require("extract-text-webpack-plugin");

var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports={

entry:{

index:"./src/js/page/index.js",

},

output:{

path: path.join(__dirname,'dist'),

publicPath: "/webpack/dist/",

filename: "js/[name].js",

chunkFilename: "js/[id].chunk.js"

},

module: {

loaders: [ //加载器

{test: /.css$/, loader:ExtractTextPlugin.extract("style", "css") },

{test: /.html$/, loader: "html" },

{test: /.(png|jpg)$/, loader: 'url-loader?limit=8192&name=./img/[hash].[ext]'}

]

},

plugins:[

new webpack.ProvidePlugin({ //加载jq

$: 'jquery'

}),

new ExtractTextPlugin("css/[name].css"), //单独使用style标签加载css并设置其路径

new webpack.optimize.UglifyJsPlugin({ //压缩代码

compress: {

warnings: false

},

except: ['$super', '$', 'exports', 'require'] //排除关键字

}),

new HtmlWebpackPlugin({ //根据模板插入css/js等生成最终HTML

favicon:'./src/img/favicon.ico', //favicon路径

filename:'/view/index.html', //生成的html存放路径,相对于 path

template:'./src/view/index.html', //html模板路径

inject:true, //允许插件修改哪些内容,包括head与body

hash:true, //为静态资源生成hash值

minify:{ //压缩HTML文件

removeComments:true, //移除HTML中的注释

collapseWhitespace:true //删除空白符与换行符

}

})

],

devServer:{

contentBase:'./dist/view'

}

};</pre>

相关文章

  • webpack

    WebPack是基于node.js开发的模块打包机(前端常常借助 node帮助前端实现工程化,很多工具是基于nod...

  • webpack3 多页面传统静态页面开发手脚架

    multipage-start-kit 基于 Webpack 开发和构建 传统多页面静态站点的前端工程化方案,支持...

  • 基于webpack的前端工程化开发解决方案探索:

    一、代码压缩 A. 压缩HTML //根据模板插入css/js等生成最终HTMLnew HtmlWebpackPl...

  • 九、webpack学习使用

    webpack 的基本使用 1.什么是webpack 概念:webpack 是前端项目工程化的具体解决方案。 主要...

  • webpack

    webpack是前端项目工程化的具体解决方案(打包更方便) 1. 安装webpack: npm install -...

  • webpack入门

    webpack webpack是前端项目工程化的具体解决方案,是一个现代JavaScript应用程序的静态模块打包...

  • Vue(使用webpack)与java后端(使用springmv

    最近学习了一下基于vue和webpack的前端开发,感受到前端工程化真的很棒,又想了想我个人网站写得一团乱麻的jq...

  • 《前端工程化开发一》

    10分钟学会前端工程化(webpack4.0) 目录 一、概要 1.1、前端工程化 1.1.1、前端工程化的任务 ...

  • 前端工程化探索——editorconfig

    title: 前端工程化探索——editorconfigcategory: Webtag: [前端工程化]date...

  • webpack 基础配置解析

    针对webpack,是大家(前端开发)在日常的开发中都会遇见的,通过书写的方式输出,学习到的关于前端工程化的小知识...

网友评论

    本文标题:基于webpack的前端工程化开发解决方案探索:

    本文链接:https://www.haomeiwen.com/subject/hwpnsttx.html