Webpack EntryPoint配置

Entry Points

文档地址
webpack支持多种方式定义entry属性。

Single Entry[shorthand] Syntax

entry: string|Array<String>
webpack.config.js

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

module.exports = config;

该配置语法可以缩写为

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

当将entry设置为array时。会创建位multi-main enty.
在多个以来文件打包成一个chunk的场景会比较有用
当快速配置webpack时,使用这种方式会比较好,但使用该种语法扩展性会比较差。

Object Syntax

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

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

使用object语法定义entry point。是扩展性最佳的定义方式。

Scalable webpack configurations指可以重用的方便跟其他配置结合的通用配置。
该方式是比较流行的技术,用来分离environment,build target,runtime。
使用webpack-merge将这些配置进行整合。

Scenarios

下面是真实项目中的一些配置

Separate App and Vendor Entries

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

上面的配置做了什么?

首先让webpack从app.jsvendors.js开始创建依赖图(dependcy graph)。
这两个依赖图是完全独立的(每个生成的bundle(每张依赖图对应的bundle)中都会包含bootstrap)
上面的配置一般适用于只包含一个entry point的SPA应用.(不包括vendors)

为什么要这么做

这样配置可以将vendor引用从app bundle中抽取到vender bundle。将这些替换为__webpack_reuire__()调用。
如果在appbundle中没有vendor代码,那可以使用常用模式longterm vendor-caching

Multi Page Application

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

上面的配置做了什么?

让webpack创建三个独立的依赖图

为什么要这么做?

在多页应用中,server将会获取HTML文档。页面重载,
新的html及新资源会被重新下载。基于这个机制我们可以做如下的事情。

  • 使用CommonsChunkPlugin创建多页中的公用的内容。多页应用会重用entry
    point中的code/modules。

根据经验,每个HTML文档都要制定一个entry point

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 11,570评论 2 71
  • 前言 webpack 是一个当下最流行的前端资源的模块打包器。当 webpack 处理应用程序时,它会递归地构建一...
    weiqinl阅读 13,452评论 6 9
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,341评论 7 110
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 12,555评论 7 35
  • 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过...
    阳阳阳一堆阳阅读 8,610评论 0 5

友情链接更多精彩内容