webpack和package.json打包配置

package.json脚本

  "scripts": {
    "clean": "rimraf ./build && mkdir build",
    "gulp": "gulp",
    "prebuild": "npm run clean && npm run gulp",
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot --host 10.20.102.73",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules ",
    "postbuild":"npm run gulpzip && npm run cleanFolder",
    "gulpzip":"gulp zip",
    "cleanFolder":"rimraf ./build"
  },


webpack打包压缩配置

var path = require('path')
var webpack = require('webpack')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
module.exports = {
    entry: {
        'login': './js/login.js',
        'register': './js/register.js',
        'retrievepwd': './js/retrievepwd.js'
    },
    output: {
        path: __dirname + '/build',
        filename: 'js/[name].[hash].js',
        publicPath:'/'
    },
    module: {
        rules: [
            {
                test: /\.(png|jpg|gif|svg)$/,
                loader: 'url-loader?limit=8192&name=./img/[name].[ext]&outputPath=img/"'
            },
            {
                test: /\.css$/,
                loader: ['style-loader', 'css-loader'],
            },
            {
                test: /\.less$/i,
                use: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    use: ['css-loader', 'less-loader']
                }),
            },

            {
                test: /\.js$/,
                loader: 'babel-loader',
                exclude: /node_modules/
            },


        ]
    },

    devServer: {
        historyApiFallback: true,
        noInfo: true
    },
    performance: {
        hints: false
    },
    devtool: '#eval-source-map',
    plugins: [
        new HtmlWebpackPlugin({
            favicon: './img/favicon.ico',
            template: './login.html',
            filename: 'login.html',
            chunks: ['login'],
            inject: true,
            minify: {
                removeComments: true,
            }
        }),
        new HtmlWebpackPlugin({
            favicon: './img/favicon.ico',
            template: './register.html',
            filename: 'register.html',
            chunks: ['register'],
            inject: true,
            minify: {
                removeComments: true,
            }
        }),
        new HtmlWebpackPlugin({
            favicon: './img/favicon.ico',
            template: './retrievePwd.html',
            filename: 'retrievePwd.html',
            chunks: ['retrievepwd'],
            inject: true,
            minify: {
                removeComments: true,
            }
        }),
        new ExtractTextPlugin('css/main.[hash].css')
    ]
}

if (process.env.NODE_ENV === 'production') {
    module.exports.devtool = '#source-map'
    // http://vue-loader.vuejs.org/en/workflow/production.html
    module.exports.plugins = (module.exports.plugins || []).concat([
        new webpack.DefinePlugin({
            'process.env': {
                NODE_ENV: '"production"'
            }
        }),
        new webpack.optimize.UglifyJsPlugin({
            // sourceMap: true,
            compress: {
                warnings: false
            }
        }),
        new webpack.LoaderOptionsPlugin({
            minimize: true
        }),

    ])
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 写在开头 先说说为什么要写这篇文章, 最初的原因是组里的小朋友们看了webpack文档后, 表情都是这样的: (摘...
    Lefter阅读 10,692评论 4 31
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 12,549评论 7 35
  • 最近在学习 Webpack,网上大多数入门教程都是基于 Webpack 1.x 版本的,我学习 Webpack 的...
    My_Oh_My阅读 12,523评论 40 247
  • 前言 WebPack 是什么? WebPack 是什么,WebPack 可以看做是模块打包机:它做的事情是,分析你...
    Promise__阅读 4,842评论 3 12
  • 1. 前言 前面的代码并没有特意去讲SDWebImage的缓存机制,主要是想单独开一章节专门讲解缓存。之前我们也遇...
    神SKY阅读 2,767评论 0 0

友情链接更多精彩内容