设为首页 加入收藏

TOP

webpack 实用配置总结(一)
2017-10-10 12:33:39 】 浏览:9102
Tags:webpack 实用 配置 总结

1、webpack.config.js配置文件为:

//处理共用、通用的js
var webpack = require('webpack'); //处理html模板
var htmlWebpackPlugin = require('html-webpack-plugin'); //css单独打包
var ExtractTextPlugin = require("extract-text-webpack-plugin"); // 获取html-webpack-plugin参数的方法 
var getHtmlConfig = function(name, title) { return { //本地模板文件的位置
        template: './src/view/' + name + '.html', //输出文件的目录和文件名称
        filename: 'view/' + name + '.html', //添加特定favicon路径到输出的html文档中
        favicon: './favicon.ico', //生成的html文档的标题
 title: title, //向template或者templateContent中注入所有静态资源,不同的配置值注入的位置不经相同。true或者body:所有java script资源插入到body元素的底部
        inject: true, //是否为所有注入的静态资源添加webpack每次编译产生的唯一hash值
        hash: true, //允许插入到模板中的一些chunk,不配置此项默认会将entry中所有的thunk注入到模板中。在配置多个页面时,每个页面注入的thunk应该是不相同的,需要通过该配置为不同页面注入不同的thunk;
        chunks: ['common', name] }; }; var config = { //多页面配置
 entry: { //通用模块
        'common': ['./src/page/common/index.js'], //登录模块
        'login': ['./src/page/login/index.js'], //首页
        'index': ['./src/page/index/index.js'] }, output: { //打包后文件存放的地方
        path: __dirname + '/dist', //打包后的文件名
        filename: 'js/[name].js' }, //将外部变量或者模块加载进来,并且不将外部变量或者模块编译进文件中
 externals: { 'jquery': 'window.jQuery' }, module: { loaders: [ //编译ES6
 { test: /\.js$/, //以下目录不处理
                exclude: /node_modules/, //处理以下目录
                include: /src/, loader: "babel-loader?cacheDirectory", //配置的目标运行环境自动启用需要的 babel 插件
 query: { presets: ['latest'] } }, //处理css
 { test: /\.css$/, //css单独打包
 use: ExtractTextPlugin.extract({ fallback: "style-loader", use: [{ loader: 'css-loader', options: { //支持@important引入css
                                importLoaders: 1 } }, { loader: 'postcss-loader', options: { plugins: function() { return [ //一定要写在require("autoprefixer")前面,否则require("autoprefixer")无效
                                        require('postcss-import')(), require("autoprefixer")({ "browsers": ["Android >= 4.1", "iOS >= 7.0", "ie >= 8"] }) ] } } } ] }) }, //处理less(同理sass)
 { test: /\.less$/, //css单独打包
 use: ExtractTextPlugin.extract({ fallback: "style-loader", use: [{ loader: 'css-loader', options: { //支持@important引入css
                                importLoaders: 1 } }, { loader: 'postcss-loader', options: { plugins: function() { return [ //一定要写在require("autoprefixer")前面,否则require("autoprefixer")无效
                                        require('postcss-import')(), require("autoprefixer")({ "browsers": ["Android >= 4.1", "iOS >= 7.0", "ie >= 8"] }) ] } } }, 'less-loader' ] }) }, //处理图片
 { test: /\.(gif|png|jpg|woff|svg|eot|ttf)\??.*$/i, loaders: [ //小于8k的图片编译为base64,大于10k的图片使用file-loader 
                    'url-loader?limit=8192&name=img/[name]-[hash:5].[ext]', //图片压缩
                    'image-webpack-loader' ] } ] }, plugins: [ //html模板处理
        new htmlWebpackPlugin(getHtmlConfig('index', '首页')), new htmlWebpackPlugin(getHtmlConfig('login', '登录页')), //通用模块编译到js/common.js
        new webpack.optimize.CommonsChunkPlugin({ //公共块的块名称
            name: 'common', //生成的文件名
            filename: 'js/common.js' }), //css单独打
        new ExtractTextPlugin('css/[name].css') ] } module.exports = config;

 

2、package.json文件为:

{ "name": "webpack", "version": "1.0.0", "main": "bundle.js", "scripts": { "test": "echo \"Error: no test specif
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇[js高手之路] html5 canvas系列教.. 下一篇javascript中两种基本常用排序算..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目