webpack實(shí)戰(zhàn)2之js分離

注意:

本文假設(shè)你有webpack2 的基礎(chǔ)認(rèn)識(shí)。

本文的目的是分離第三方代碼和自身代碼

項(xiàng)目結(jié)構(gòu)如下所示:

61498117491_.pic.jpg

開始實(shí)戰(zhàn)

創(chuàng)建一個(gè)目錄<code>webpack-demo2</code>,并安裝<code>wbepack</code>。

  mkdir webpack-demo2 && cd webpack-demo2
  npm init -y
  npm install --save-dev webpack

安裝<code>jquery</code>

  npm install jquery --save

安裝<code>html-webpack-plugin</code>

npm install html-webpack-plugin --save-dev

新建<code>index.html</code>文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=<device-width>, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>webpack</title>
</head>
<body>
</body>
</html>

新建<code>index.js</code>文件

const $ = require('jquery');
$('body').html('hello world').css('color','red');

新建<code>webpack.config.js</code>文件

const path = require('path');
const webpack = require('webpack');
const HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry: {
    main: './index.js',
    vendor: 'jquery'
},
output: {
    filename: '[name].js',
    path: path.resolve(__dirname, 'dist')
},
plugins: [
    new webpack
        .optimize
        .CommonsChunkPlugin({
            name: ['vendor']
        }),
        new HtmlWebpackPlugin({
            filename:'index.html',
            template:'index.html',
            inject:'body'
        })
    ]
}

說明
上述代碼使用了多個(gè)入口。

webpack.optimize.CommonsChunkPlugin 插件,是一個(gè)可選的用于建立一個(gè)獨(dú)立文件(又稱作 chunk)的功能,這個(gè)文件包括多個(gè)入口 chunk 的公共模塊。通過將公共模塊拆出來,最終合成的文件能夠在最開始的時(shí)候加載一次,便存起來到緩存中供后續(xù)使用。

HtmlWebpackPlugin該插件將所有生成的js文件自動(dòng)引入index.html中。當(dāng)文件名帶有hash值時(shí),這個(gè)插件尤其有用。
HtmlWebpackPlugin會(huì)根據(jù)模版生成一個(gè)新的html文件。

最后打包代碼:

webpack --config webpack.config.js

71498118152_.pic_hd.jpg

在瀏覽器中打開dist文件夾下的index.html就能看到效果了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容