# blogs **Repository Path**: Zarberber/blogs ## Basic Information - **Project Name**: blogs - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-09-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #蓝景技术webpack脚手架 支持最新的webpack3.4.1打包 适用于单页应用、多页应用或vue应用 > **必须保留原始目录结构,千万不要删除任何的文件夹** ##目录说明 ``` /根目录 |——src 源文件目录 |————images html和css要引用的图片放在此 |————js 主要js文件存放处 |————scss 主要的scss存放处 |————static 静态资源,不经过webpack处理 |——data 存放一些json数据登 |——font 字体文件、icon文件等的存放处 |——images JS文件中动态引用的图片存放在此 |——lib html和js要引入的第三方库 |————index.html 单页应用的html入口文件,如果多页,则多个html文件放在此目录下 |——package.json npm相关配置 |——webpack.config.js webpack配置文件 |——postcss.config.js postcss配置文件(自动加前缀) ``` ##使用说明 1. 开发模式 会开启文件监听,热更新,预览web服务 ``` npm run dev ``` 2. 生产模式 直接打包为最终版本文件,压缩合并图片,CSS,JS,HTML等文件 ``` npm run build ``` > 注意:生成的文件,默认是必须放在根目录下访问,才可以访问成功,例如`http://bgg.com/index.html`,那你就必须把dist目录下的文件,全部放在bgg.com域名所指向的根目录 3. 纯监听模式(没预览功能) ``` npm run watch ``` ##webpack.config.js配置文件说明 1. 21行可以写入需要打包为公共脚本库的文件列表,默认有`babel-polyfill`,`preload`,`jquery`,`vue`,不需要的话,把其删除即可 ``` //html里要引入的公共文件库 lib:["babel-polyfill", "./src/static/lib/preloadjs-0.6.2.min.js","jquery","vue"] ``` 2. 多页应用的话,需要增加对应的入口文件和HTML页面 需要在15行的`entry`分支进行添加 ``` entry: { //入口文件,通常一个html一个入口 first: ["./src/js/main.js"], //页面1的入口 second: ["./src/js/second.js"], //页面2的入口 } ``` 然后114行的配置,添加对应的html文件配置 ``` //自动注入相关文件到 new HtmlWebpackPlugin({ filename: "index.html", title: '[name]', inject: true, chunks: ["first", "lib"], //指定注入的入口文件 template: "./src/index.html", minify: { //压缩HTML文件 removeComments: true, //移除HTML中的注释 collapseWhitespace: true, //删除空白符与换行符 removeAttributeQuotes: true //删除标签属性值的引号 } }), new HtmlWebpackPlugin({ filename: "second.html", title: '[name]', inject: true, chunks: ["second", "lib"], //指定注入的入口文件 template: "./src/second.html", minify: { //压缩HTML文件 removeComments: true, //移除HTML中的注释 collapseWhitespace: true, //删除空白符与换行符 removeAttributeQuotes: true //删除标签属性值的引号 } }), ``` ##参考文献: [webpack2官方](https://webpack.js.org/configuration/) [webpack2中文手册](http://www.css88.com/doc/webpack2/) [babel](http://babeljs.io/docs/usage/babelrc/) [postcss插件](https://github.com/postcss/postcss) [tinypng压缩插件](https://www.npmjs.com/package/tinypng-webpack-plugin)