webpack3--配置多入口和多出口


上一篇我們稍微提到了webpack.config.js。今天主要來說下如何配置多入口,多出口

我們之前寫到的webpack.config.js,具體代碼如下:

module.exports = {
    mode: 'development',
    //入口
    entry: __dirname + '/src/entry.js',
   //出口
    output: {
        path:__dirname + '/dist',
        filename: 'bundle.js',
    }
}

上面的entry 和 output 就是單一的入口和出口。

 

下面我們創建一個多入口,多出口的實例。

准備工作如下:

1. 新建文件夾page,並在該文件夾下面創建 index.html 和 signup.html 2個文件

index.html代碼如下:

<!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>index</title>
</head>
<body>
    <div id="title"></div>
    <script src="../src/base.js"></script>
    <script src="../src/index.js"></script>
</body>
</html>

index.html 引用了base.js 和 index.js。js文件我們等會創建。

 

signup.html代碼如下:

<!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>signup</title>
</head>
<body>
    <script src="../src/base.js"></script>
    <script src="../src/signup.js"></script>
</body>
</html>

signup.html 引用了base.js 和 signup.js。

 

2. src文件夾下面創建base.js,  index.js, signup.js 3個js 文件:

base.js:

var open=true;
export {open};

 

index.js:

import {open} from './base';
if(open){
    document.body.innerHTML=`<a href="signup.html">注冊</a>`
}

 

signup.js:

import {open} from './base';

if(open){
    document.body.innerHTML=`<h1>Hello World!</h1>`
}else{
    document.body.innerHTML=`<h1>暫不開放注冊</h1>`
}

 

從上面我們得知 index.html 頁面引用了base.js 和 index.js ,

signup.html 引用了base.js 和 signup.js。

我們通過webpack如何分別打包js文件呢?這里我們通過 webpack 的多入口 和 多出口配置就能達到該目的了。

 

3. 配置多入口,多出口:

module.exports = {
    mode: 'development',
    entry: {
        index:__dirname + '/src/index.js',
        signup:__dirname + '/src/signup.js',
    },

    output: {
        path:__dirname + '/dist',
        filename: '[name].bundle.js',
    }
}

跟單入口,單出口的文件相比entry現在是一個對象了,output 的 filename 多了一個 [name].

最后執行打包命令,可以看到 dist 目錄下面生成了 index.bundle.js 和 signup.bundle.js 。

所以這里的 [name] 等同於 entry 定義的鍵名

執行結果如下:

 

文件打包完成之后,記得把你html 引用的js 路徑改成你打包后的js路徑。如下圖:

index.html:

 

signup.html:

 

感謝閱讀~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM