这次给大家带来如何操作webpack处理文件,操作webpack处理文件的注意事项有哪些,下面就是实战案例,一起来看一下。
使用webpack打包,最爽的事情莫过于可以直接require文件了,但是这
同时带来了一个问题,就是所有的文件整合到一起,那这一个包就太大了。
基于此:下面我们来了解下webpack的打包(主要是将如何将我们需要的内容模块,分开打包,
并且按照我们自己设定的存放路径进行存放)
首先在webpack.config.js文件中
entry入口函数出表示出哪些是需要单独打包成一个js包的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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入口函数那儿):
1 2 3 4 5 6 | 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代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 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"
})
]
};
|
相信看了本文案例你已经掌握了方法。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~