webpack打包并将文件加载到指定的位置

使用webpack打包,最爽的事情莫过于可以直接require文件了,但是这

同时带来了一个问题,就是所有的文件整合到一起,那这一个包就太大了。

基于此:下面我们来了解下webpack的打包(主要是将如何将我们需要的内容模块,分开打包,

并且按照我们自己设定的存放路径进行存放)

首先在webpack.config.js文件中

entry入口函数出表示出哪些是需要单独打包成一个js包的:



entry: {
        main: path.resolve(__dirname,'src/index.js'),
        jq: ['jquery'],
        react: ['react'],
        redom: ['react-dom']
},

output: {
        path: path.resolve(__dirname,'dist'),
        publishPath: 'dist/',
        filename: '[name].js'
    },
plugin: [
     new webpack.optimize.CommonsChunkPlugin('jq','jq.js'),
     new webpack.optimize.CommonsChunkPlugin('vendors','vendors.js'),
     new webpack.optimize.CommonsChunkPlugin('redom','redom.js')
]

如上配置,这样在文件生成的时候dist目录下就会增加jq.js,vendors.js,redom.js这三个js了

以上解决了我们要打包多个包的问题;
那如果我们想要将打包好的js存放在指定的位置又要如何进行操作呢,不用着急,下面就来具体

的实现以下(其实区别主要是在entry入口函数那儿):


entry: {
        './common/main': path.resolve(__dirname,'src/index.js'),
        './jquery/jq': ['jquery'],
        './react/react': ['react'],
        './reactdom/redom': ['react-dom']
    },

如上所示这样四个js就会分别存放到我们制定的dist下的四个文件夹中了。(标注:这时候就不

需要用到webpack.optimize.CommonsChunkPlugin插件了)

最后贴上左右的webpack.config.js代码:

var webpack = require('webpack');
var path = require('path');

module.exports = {
    entry: {
        './common/main': path.resolve(__dirname,'src/index.js'),
        './jquery/jq': ['jquery'],
        './react/react': ['react'],
        './reactdom/redom': ['react-dom']
    },
    output: {
        path: path.resolve(__dirname,'dist'),
        publishPath: 'dist/',
        filename: '[name].js'
    },
    module: {
        loaders: [
            {
                test: /\.scss$/,
                loader: 'style!css!sass'
            },
            {
                test: /\.js$/,
                exclude: /node_modules|vue\/dist|vue-router\/|vue-loader\/|vue-hot-reload-api\/|presets\//,
                loader: 'babel'
            },
            {
                test: /\.(png|jpg|gif)$/,
                loader: 'url?limit=40000'
            }
        ]
    },
    babel: {
        presets: ['es2015','stage-0','react'],
        plugins: ['transform-runtime',["antd",{"style": "css"}]]
    },
    resolve: ['js','jsx','css'],
    plugins:[
      new webpack.ProvidePlugin({
         $:"jquery",
         jQuery:"jquery",
         "window.jQuery":"jquery"
     })
    //  new webpack.optimize.CommonsChunkPlugin('jq','jq.js'),
    //  new webpack.optimize.CommonsChunkPlugin('vendors','vendors.js'),
    //  new webpack.optimize.CommonsChunkPlugin('redom','redom.js')
    ]
};
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值