webpack 生产/开发环境配置文件分离

24 篇文章 0 订阅
6 篇文章 0 订阅

npm install webpack-merge -D

build目录下:

base.config.js

const path=require("path")
const { VueLoaderPlugin } = require("vue-loader")
const HtmlWebpackPlugin=require("html-webpack-plugin")
module.exports={
    entry : './src/main.js',
    output : {
        path : path.resolve(__dirname,"../dist"),
        filename : 'bundle.js',
        assetModuleFilename : 'images/[name]-[hash:8][ext][query]'
    },
    module : {
        rules : [
            {
                test : /\.css$/,
                use : [
                    
                    "style-loader",
                    "css-loader",
                ]
            },
            {
                test : /\.scss$/,
                use : [
                    {
                        loader:"style-loader"
                    },{
                        loader : "css-loader",
                    },
                    {
                        loader : "sass-loader"
                    }
                ]
            },
            {
                test : /\.(jpg|png|gif)$/,
                type : 'asset/resource'
            },
            {
                test : /\.m?js$/,
                exclude : /(node_modules|bower_components)/,
                use : {
                    loader : 'babel-loader',
                    options : {
                        presets : ["@babel/preset-env"]
                    }
                }
            },
            {
                test : /\.vue$/,
                use : ["vue-loader"]
            }
        ]
    },
    plugins : [
        new VueLoaderPlugin(),
        new HtmlWebpackPlugin({
            template :'index.html'
        })
    ],
    resolve : {
        extensions : [".js",".css",".vue"],
        alias : {
            //编译运行时均解析template
            "vue$" : "vue/dist/vue.esm.js"
        }
    },
}

pro.config.js

const webpack=require("webpack")
const WebpackMerge=require("webpack-merge")

const baseConfig=require('./base.config')

module.exports=WebpackMerge.merge(baseConfig,{
    plugins : [
        new webpack.BannerPlugin("版权归ywxk所有"),
    ],
})

dev.config.js


const WebpackMerge=require('webpack-merge')
const baseConfig=require('./base.config')

module.exports=WebpackMerge.merge(baseConfig,{
    mode : "development",
    devServer : {
        static : './dist',
        open : true,
    }
})

package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config ./build/pro.config.js",
    "dev": "webpack-dev-server --config ./build/dev.config.js"
  },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

y_w_x_k

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值