美文网首页
入口(entry)

入口(entry)

作者: 炎武森禄 | 来源:发表于2017-02-16 09:59 被阅读0次

正如我们在 介绍中提到的,在 webpack 配置中有多种方式定义entry属性。除了解释为什么它可能对你有用之外,我们还将向你展示如何能够配置entry属性。

单入口(简写)语法

用法: entry: string|Array<string>

webpack.config.js

const config = {
  entry: './path/to/my/entry/file.js'
};

module.exports = config;

上面的entry的单入口语法是下面的简写:

const config = {
  entry: {
    main: './path/to/my/entry/file.js'
  }
};

当你向entry属性传入一个数组会怎样?entry属性传入文件路径数组 将创建 “多个主入口”。当你想要将多个依赖文件一起注入,并且将它们的依赖映射到一个“块(chunk)”时,传入数组是非常有用的。

如果你正在为一个应用程序或者一个单入口工具(即:一个库)寻找快速设置webpack的配置,这会是个很不错的选择。但是此语法无法灵活的扩展配置。

对象语法

用法: entry: {[entryChunkName: string]: string|Array<string>}

webpack.config.js

const config = {
  entry: {
    app: './src/app.js',
    vendors: './src/vendors.js'
  }
};

对象语法会比较繁琐。但对于定义应用程序入口来说,这是扩展性最强方式。

"webpack 的可扩展配置"是可重用的, 也可以与其他配置组合使用。这是一种非常流行的技术,可用于分别关注environment、 build target以及runtime。然后使用专门的工具(如 webpack-merge)把它们合并在一起。

常见场景

请参考以下列出的入口配置以及相应实例:

入口分离 应用 和 公共库

webpack.config.js

const config = {
  entry: {
    app: './src/app.js',
    vendors: './src/vendors.js'
  }
};

做了什么?
从表面上看,这告诉我们 webpackapp.jsvendors.js开始创建依赖图。这些依赖图完全分离、互相独立(每个包都会有一个自己的webpack bootstrap)。通常这种配置适用于只有单入口的单页应用(不包括公共库)。

为什么这么做?
如此设置并使用 CommonsChunkPlugin插件 ,将公共引用从应用程序包中提取到公共库包中,并把公共引用的部分替换为__webpack_require__()调用。公共代码独立打包之后,那么你就实现了webpack 中我们所熟知的 长效缓存

多页应用

webpack.config.js

const config = {
  entry: {
    pageOne: './src/pageOne/index.js',
    pageTwo: './src/pageTwo/index.js',
    pageThree: './src/pageThree/index.js'
  }
};

做了什么?
我们告诉webpack我们有三个独立的依赖图 。

为什么这么做?
在多页应用中,页面切换时,当服务器为您获取一个新的 HTML。页面会重新加载新HTML文件,并且重新下载资源。这样就有机会去做很多事:

  • 运用 CommonsChunkPlugin在每个页面间创建共享包。由于入口点增多,这样的新技术让多页应用能够在各入口点重用大量代码/模块,从而从中受益。

通常来说:对于每个HTML,应当只使用一个入口点。

下一篇:出口

相关文章

  • 入口(entry)

    正如我们在 介绍中提到的,在 webpack 配置中有多种方式定义entry属性。除了解释为什么它可能对你有用之外...

  • webpack之基础配置

    entry 单入口:entry是一个字符串entry: './src/index.js' 多入口:entry是一个...

  • Webpack4-Entry

    入口起点(Entry Points) 在 webpack 配置中有多种方式定义 entry 属性。 单个入口(简写...

  • webpack的基本配置

    webpack有5个基本配置 module.exports={entry :‘入口文件’(如果多入口:entry:...

  • webpack study

    一、主要概念:1、entry(入口)入口起点(entry point)指示 webpack 应该使用哪个模块,来作...

  • 再撸一遍webpack

    Webpack 核心概念 入口(entry)单入口 entry: './src/main.js'如果传入的是文件...

  • 第二节:Webpack核心概念与安装使用

    1. Webpack的核心概念 1.1 核心概念说明: 1.1.1 入口(entry) 入口起点(entry po...

  • 第二节:Webpack核心概念与安装使用

    1. Webpack的核心概念 1.1 核心概念说明: 1.1.1 入口(entry) 入口起点(entry po...

  • Webpack相关

    一、概念 1、基本组成:entry、output、loader、plugins entry: 入口起点(entry...

  • webpack 基础配置

    入口与输出 entry 单个入口打包 entry设置为一个入口,打包出来的文件只有一个js。__dirname 为...

网友评论

      本文标题:入口(entry)

      本文链接:https://www.haomeiwen.com/subject/qewqwttx.html