博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack 入口起点(Entry Points)
阅读量:6847 次
发布时间:2019-06-26

本文共 1644 字,大约阅读时间需要 5 分钟。

单个入口(简写)语法

用法:entry:string|Array

webpack.config.jsconst config = {  entry: './path/to/my/entry/file.js'};module.exports = config;复制代码

entry 属性的单个入口语法,是下面的简写:

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

当你向 entry 传入一个数组时会发生什么?向 entry 属性传入「文件路径(file path)数组」将创建“多个主入口(multi-main entry)”。在你想要多个依赖文件一起注入,并且将它们的依赖导向(graph)到一个“chunk”时,传入数组的方式就很有用。

对象语法

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

webpack.config.jsmodule.exports = {  entry: {    app: './src/app.js',    vendors: './src/vendors.js'  }};复制代码

对象语法会比较繁琐。然而,这是应用程序中定义入口的最可扩展的方式。

常见场景

以下列出一些入口配置和它们的实际用例:

分离 应用程序(app) 和 第三方库(vendor) 入口
webpack.config.jsconst config = {  entry: {    app: './src/app.js',    vendors: './src/vendors.js'  }};复制代码

这是什么?从表面上看,这告诉我们 webpack 从 app.js 和 vendors.js 开始创建依赖图(dependency graph)。这些依赖图是彼此完全分离、互相独立的(每个 bundle 中都有一个 webpack 引导(bootstrap))。这种方式比较常见于,只有一个入口起点(不包括 vendor)的单页应用程序(single page application)中。

为什么?此设置允许你使用 CommonsChunkPlugin 从「应用程序 bundle」中提取 vendor 引用(vendor reference) 到 vendor bundle,并把引用 vendor 的部分替换为 webpack_require() 调用。如果应用程序 bundle 中没有 vendor 代码,那么你可以在 webpack 中实现被称为长效缓存的通用模式。

为了支持提供更佳 vendor 分离能力的 DllPlugin,考虑移除该场景。

多页面应用程序
webpack.config.jsconst config = {  entry: {    pageOne: './src/pageOne/index.js',    pageTwo: './src/pageTwo/index.js',    pageThree: './src/pageThree/index.js'  }};复制代码

这是什么?我们告诉 webpack 需要 3 个独立分离的依赖图(如上面的示例)。

为什么?在多页应用中,(译注:每当页面跳转时)服务器将为你获取一个新的 HTML 文档。页面重新加载新文档,并且资源被重新下载。然而,这给了我们特殊的机会去做很多事:

使用 CommonsChunkPlugin 为每个页面间的应用程序共享代码创建 bundle。由于入口起点增多,多页应用能够复用入口起点之间的大量代码/模块,从而可以极大地从这些技术中受益。

根据经验:每个 HTML 文档只使用一个入口起点。

转载于:https://juejin.im/post/5abf0281f265da239e4e341a

你可能感兴趣的文章
SpringMVC中使用Interceptor拦截器
查看>>
windows下同时启动多个tomcat
查看>>
Linux初级运维(十一)——facl及用户及Linux终端及case语句
查看>>
corosync+pacemaker实现web高可用
查看>>
jdbc odbc jdbc-odbc
查看>>
音视频即时通讯解决方案之手机即时通讯
查看>>
写给那些傻傻想做服务器开发的朋友
查看>>
oracle高级查询,事物,过程及函数
查看>>
获取交换机带宽超过阀值就报警
查看>>
apache 服务无法启动
查看>>
《可爱的Python》读书笔记(四)
查看>>
[转]iOS开发教程:Storyboard全解析-第一部分03
查看>>
磁盘阵列 raid 0 1 5 10
查看>>
使用spring-data-solr做solr客户端
查看>>
使用js命名空间进行模块式开发
查看>>
计算器(使用分支结构)
查看>>
2.0-创建快照
查看>>
C++中union的介绍与使用。
查看>>
修改sqlserver默认的路径
查看>>
linux LVM
查看>>