下面我就為大家分享一篇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"
})
]
};
|
登入後複製
上面是我整理給大家的,希望今後對大家有幫助。
相關文章:
在vue中使用eventBus如何實作同級元件的通訊
在vue2.0中如何實作自定義餅狀圖(Echarts)元件
在vue中slot如何實作在子元件中顯示父元件傳遞的範本(詳細教學)
以上是在webpack中打包並將檔案載入到指定的位置(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!