顶级 输出
key包含一组选项,用于指示webpack如何以及在何处输出捆绑包、资产以及使用webpack捆绑或加载的任何其他内容。
output.assetModule文件名
string='[哈希][文本][查询]'
function(pathData,assetInfo)=>字符串
一样 输出.filename
但为了 资产模块 .
[姓名]
, [文件]
, [查询]
, [片段]
, [基础]
、和 [路径]
对于从数据URI替换构建的资产,设置为空字符串。
output.asyncChunks输出同步块
布尔值=true
创建按需加载的异步块。
webpack.config.js
模块 . 出口 = {
输出 : {
异步块 : 真的 ,
} ,
} ;
输出辅助注释
一串
对象
与一起使用时 输出库
和 输出库目标
,此选项允许用户在导出包装器中插入注释。 为每个插入相同的注释 库目标
类型,集 辅助注释
转换为字符串:
webpack.config.js
模块 . 出口 = {
输出 : { 图书馆 : “someLibName” , 库目标 : “嗯” , 文件名 : 'someLibName.js' , 辅助注释 : '测试注释' ,
} ,
} ;
这将产生以下结果:
someLibName.js
( 功能 webpack通用模块定义 ( 根 , 工厂 ) {
如果 ( 类型 出口 === '对象' && 类型 模块 === '对象' ) 模块 . 出口 = 工厂 ( 要求 ( “lodash” ) ) ;
其他的 如果 ( 类型 定义 === '功能' && 定义 . amd公司 )
定义 ( [ “lodash” ] , 工厂 ) ;
其他的 如果 ( 类型 出口 === '对象' ) 出口 [ “someLibName” ] = 工厂 ( 要求 ( “lodash” ) ) ;
其他的 根 [ “someLibName” ] = 工厂 ( 根 [ '_' ] ) ;
} ) ( 这 , 功能 ( __网络包_EXTERNAL_MODULE_1__ ) {
} ) ;
用于对每个 库目标
注释,传递对象:
webpack.config.js
模块 . 出口 = {
输出 : {
辅助注释 : { 根 : '根注释' , 公共设施 : “CommonJS注释” , 通用js2 : “CommonJS2注释” , amd公司 : “AMD评论” ,
} ,
} ,
} ;
输出.字符集
布尔值=true
告诉webpack添加 charset=“utf-8”
到HTML <脚本>
标签。
output.chunk文件名
字符串=“[id].js”
function(pathData,assetInfo)=>字符串
此选项确定非初始化区块文件的名称。 请参见 输出.filename
选项获取有关可能值的详细信息。
请注意,这些文件名需要在运行时生成,以发送对块的请求。 因此,占位符 [姓名]
和 [春喀什语]
需要使用webpack运行时将块id到占位符值的映射添加到输出包。 这会增加大小,并可能在任何块的占位符值更改时使捆绑包无效。
默认情况下 [标识].js
使用了或从中推断出的值 输出.filename
( [姓名]
替换为 [标识]
或 [标识]。
已预先添加)。
webpack.config.js
模块 . 出口 = {
输出 : {
chunk文件名 : “[id].js” ,
} ,
} ;
作为函数使用:
webpack.config.js
模块 . 出口 = {
输出 : {
chunk文件名 : ( 路径数据 ) => {
返回 路径数据 . 块 . 名称 === “主要” ? '[name].js' : '[name]/[name].js' ;
} ,
} ,
} ;
output.chunk格式
假
字符串:“array-push”|“commonjs”|“module”|<任何字符串>
块的格式(默认包含的格式为 '数组推送'
(web/WebWorker), “commonjs”
(节点.js), '模块'
(ESM),但其他可能通过插件添加)。
webpack.config.js
模块 . 出口 = {
输出 : {
chunk格式 : “commonjs” ,
} ,
} ;
输出chunkLoadTimeout
数量=120000
区块请求过期前的毫秒数。 自webpack 2.6.0以来,此选项一直受支持。
webpack.config.js
模块 . 出口 = {
输出 : {
chunkLoadTimeout(块加载超时) : 30000 ,
} ,
} ;
output.chunk加载全局
string='webpackChunkwebpack'
webpack使用全局变量加载块。
webpack.config.js
模块 . 出口 = {
输出 : {
chunk加载全局 : “myCustomFunc” ,
} ,
} ;
output.chunk加载
假
string:“jsonp”|“import-scripts”|“需要”|“async-node”|“导入”|<任何字符串>
加载块的方法(默认情况下包括 “jsonp”
(网络), '导入'
(ESM), '导入脚本'
(网络工作者), “需要”
(sync node.js), '异步节点'
(async node.js),但其他可能由插件添加)。
webpack.config.js
模块 . 出口 = {
输出 : {
chunk加载 : '异步节点' ,
} ,
} ;
输出.清洁
5.20.0+
布尔值
{dry?:boolean,keep?:RegExp|string|((文件名:string)=>boolean)}
模块 . 出口 = {
输出 : { 清洁的 : 真的 ,
} ,
} ;
模块 . 出口 = {
输出 : { 清洁的 : { 干的 : 真的 ,
} ,
} ,
} ;
模块 . 出口 = {
输出 : { 清洁的 : { 保持 : /忽略\/dir\// ,
} ,
} ,
} ;
模块 . 出口 = {
输出 : { 清洁的 : {
保持 ( 资产 ) {
返回 资产 . 包括 ( '忽略/dir' ) ;
} ,
} ,
} ,
} ;
您也可以将其与挂钩一起使用:
网络包 . 清洁插件 . 获取编译挂钩 ( 汇编 ) . 保持 . 水龙头 (
“测试” ,
( 资产 ) => {
如果 ( /忽略\/dir\// . 测试 ( 资产 ) ) 返回 真的 ;
}
) ;
输出.compareBeforeEmit
布尔值=true
告诉webpack在写入输出文件系统之前,检查待发出文件是否已经存在并具有相同的内容。
模块 . 出口 = {
输出 : { 发射前比较 : 假 ,
} ,
} ;
输出交叉原始加载
布尔值=false
string:“anonymous”|“use-credentials”
告诉webpack启用 交叉原点 加载块。 仅当 目标
设置为 “网络”
,它使用JSONP通过添加脚本标记来加载按需块。
“匿名”
-启用交叉原点加载 没有凭据
'使用凭据'
-启用交叉原点加载 具有凭据
output.cssChunk文件名
一串
function(pathData,assetInfo)=>字符串
此选项确定磁盘上非初始化CSS输出文件的名称。 请参见 输出.filename
选项获取有关可能值的详细信息。
你 不能 在此处指定绝对路径。 但是,您可以随意包括由以下内容分隔的文件夹 '/'
。此指定路径与 输出路径
值来精确定位磁盘上的位置。
output.css文件名
一串
function(pathData,assetInfo)=>字符串
此选项确定磁盘上CSS输出文件的名称。 请参见 输出.filename
选项获取有关可能值的详细信息。
你 不能 在此处指定一个绝对路径。 但是,您可以随意包括由以下内容分隔的文件夹 '/'
。此指定路径与 输出路径
值来精确定位磁盘上的位置。
输出.cssHeadDataCompression
5.91.0+
布尔值
此选项决定是否压缩CSS文件的head标记中生成的元数据。 此选项默认为 真的
在里面 生产
和 假
在里面 发展
模式 分别是。
输出.devtoolFallback模块文件名模板
一串
功能(信息)
当上述模板字符串或函数产生重复项时,将使用回退。
请参见 输出.devtoolModule文件名模板
.
输出.devtoolModule文件名模板
string='webpack://[namespace]/[resource-path]? [装载机]'
函数(信息)=>字符串
此选项仅在以下情况下使用 开发工具
使用需要模块名称的选项。
自定义每个源映射中使用的名称 来源
数组。 这可以通过传递模板字符串或函数来完成。 例如,当使用 devtool:“eval”
.
webpack.config.js
模块 . 出口 = {
输出 : { 开发工具模块文件名模板 :
'webpack://[namespace]/[resource-path]? [装载机]' ,
} ,
} ;
以下替换在模板字符串中可用(通过webpack的内部 模块文件名助手
):
模板 说明 [绝对资源路径] 绝对文件名 [所有装载机] 自动显式加载程序和参数,直到第一个加载程序的名称 [散列] 模块标识符的哈希 [标识] 模块标识符 [装载机] 显式装入器和参数,直到第一个装入器的名称 [资源] 用于解析文件的路径和第一个加载程序上使用的任何查询参数 [资源路径] 用于解析没有任何查询参数的文件的路径 [名称空间] 模块命名空间。 这通常是作为库构建时的库名称,否则为空
使用功能时,可以通过 信息
参数:
模块 . 出口 = {
输出 : {
开发工具模块文件名模板 : ( 信息 ) => {
返回 ` 网络包:/// ${ 信息 . 资源路径 } ? ${ 信息 . 装载机 } ` ;
} ,
} ,
} ;
如果多个模块会产生相同的名称, 输出.devtoolFallback模块文件名模板
而是用于这些模块。
输出.devtoolNamespace
一串
此选项确定与 输出.devtoolModule文件名模板
。如果未指定,则默认值为: 输出唯一名称
。它用于在加载使用webpack构建的多个库时,防止源映射中的源文件路径冲突。
例如,如果您有两个库,其中包含名称空间 图书馆1
和 图书馆2
,两者都有一个文件 ./src/index.js
(内容可能不同),它们将这些文件公开为 webpack://library1/./src/index.js
和 webpack://library2/./src/index.js
.
output.enabled区块加载类型
[string:'jsonp'|'导入脚本'|'需要'|'异步节点'|<任何字符串>]
允许入口点使用的块加载类型列表。 将由webpack自动填充。 仅当使用函数作为输入选项并从那里返回chunkLoading选项时才需要。
webpack.config.js
模块 . 出口 = {
输出 : {
启用区块加载类型 : [ “jsonp” , “需要” ] ,
} ,
} ;
输出启用的库类型
[字符串]
允许入口点使用的库类型列表。
模块 . 出口 = {
输出 : { 启用的库类型 : [ '模块' ] ,
} ,
} ;
output.enabled Wasm加载类型
[字符串]
为入口点启用的wasm加载类型列表。
模块 . 出口 = {
输出 : { 启用Wasm加载类型 : [ “获取” ] ,
} ,
} ;
输出.环境
告诉webpack在生成的运行时代码中可以使用哪种ES-功能。
模块 . 出口 = { 输出 : { 环境 : {
箭头函数 : 真的 ,
异步函数 : 真的 ,
大IntLiteral : 假 ,
常量 : 真的 ,
破坏 : 真的 ,
动态导入 : 假 ,
动态导入Worker : 假 ,
forOf(属于) : 真的 ,
全球This : 真的 ,
模块 : 假 ,
核心模块的节点Prefix : 假 ,
可选链 : 真的 ,
模板文字 : 真的 ,
} ,
} ,
} ;
输出.filename
一串
function(pathData,assetInfo)=>字符串
此选项确定每个输出捆绑包的名称。 包被写入 输出路径
选项。
对于单个 进入
点,这可以是一个静态名称。
webpack.config.js
模块 . 出口 = {
输出 : { 文件名 : “bundle.js” ,
} ,
} ;
然而,当通过多个入口点、代码分割或各种插件创建多个bundle时,您应该使用以下替换之一为每个bundle指定一个唯一的名称。。。
使用条目名称:
webpack.config.js
模块 . 出口 = {
输出 : { 文件名 : '[name].bundle.js' ,
} ,
} ;
使用内部块id:
webpack.config.js
模块 . 出口 = {
输出 : { 文件名 : “[id].bundle.js” ,
} ,
} ;
使用从生成的内容生成的哈希:
webpack.config.js
模块 . 出口 = {
输出 : { 文件名 : “[contenthash].bundle.js” ,
} ,
} ;
组合多个替换:
webpack.config.js
模块 . 出口 = {
输出 : { 文件名 : “[姓名]。 [contenthash].bundle.js' ,
} ,
} ;
使用函数返回文件名:
webpack.config.js
模块 . 出口 = {
输出 : {
文件名 : ( 路径数据 ) => {
返回 路径数据 . 块 . 名称 === “主要” ? '[name].js' : '[name]/[name].js' ;
} ,
} ,
} ;
确保阅读 缓存指南 了解详细信息。 所涉及的步骤不仅仅是设置此选项。
请注意,此选项称为文件名,但您仍可以使用类似的选项 'js/[name]/bundle.js'
创建文件夹结构。
请注意,此选项不会影响按需加载块的输出文件。 它只影响最初加载的输出文件。 对于按需加载的区块文件 output.chunk文件名
选项。 由加载程序创建的文件也不受影响。 在这种情况下,您必须尝试特定加载器的可用选项。
模板字符串
以下替换在模板字符串中可用(通过webpack的内部 模板路径插件
):
编译级可用的替换:
模板 说明 [完整散列] 编译的完整哈希 [散列] 相同,但已弃用
Chunk级别可用的替换:
模板 说明 [标识] 块的ID [姓名] 块的名称(如果设置),否则为块的ID [春喀什语] 块的散列,包括块的所有元素 [内容哈希] 块的散列,仅包括此内容类型的元素(受 优化.realContentHash
)
模块级可用替代品:
模板 说明 [标识] 模块的ID [模块化] 相同,但已弃用 [散列] 模块的哈希 [模数] 相同,但已弃用 [内容哈希] 模块内容的散列
文件级可用的替换:
模板 说明 [文件] 文件名和路径,无查询或片段 [查询] 带前导的查询 ?
[片段] 带前导的片段 #
[基础] 仅文件名(包括扩展名),不带路径 [文件库] 相同,但已弃用 [路径] 只有路径,没有文件名 [姓名] 只有不带扩展名或路径的文件名 [分机] 带前导的扩展 .
(不适用于 输出.filename )
URL级别上可用的替换:
散列的长度( [散列]
, [内容哈希]
或 [春喀什语]
)可以使用指定 [散列:16]
(默认为20)。 或者,指定 output.hashDigestLength(输出哈希摘要长度)
全局配置长度。
当您想在实际文件名中使用其中一个占位符时,可以筛选出占位符替换。 例如,要输出文件 [名称].js
,你必须逃离 [姓名]
通过在括号之间添加反斜杠来占位符。 以便 [\名称\]
生成 [姓名]
而不是被替换为 名称
资产。
例子: [\id\]
生成 [标识]
而不是被替换为 身份证件
.
如果将函数用于此选项,则将向该函数传递一个包含上表中替换数据的对象。 替换也将应用于返回的字符串。 传递的对象将具有以下类型:(根据上下文可用的属性)
类型 路径数据 = { 搞砸 : 一串 ;
哈希长度 : ( 数 ) => 一串 ; 块 : 块 | ChunkPathData(ChunkPath数据) ;
模块 : 模块 | 模块路径数据 ; 内容哈希类型 : 一串 ; contentHash : 一串 ;
包含长度的内容哈希 : ( 数 ) => 一串 ; 文件名 : 一串 ; 网址 : 一串 ; 运行时 : 一串 | 可排序集合 < 一串 > ; chunk图形 : ChunkGraph(区块图) ;
} ;
类型 ChunkPathData(ChunkPath数据) = { 身份证件 : 一串 | 数 ; 名称 : 一串 ; 搞砸 : 一串 ;
哈希长度 : ( 数 ) => 一串 ; contentHash : 记录 < 一串 , 一串 > ; 包含长度的内容哈希 : 记录 < 一串 , ( 数 ) => 一串 > ;
} ;
类型 模块路径数据 = { 身份证件 : 一串 | 数 ; 搞砸 : 一串 ;
哈希长度 : ( 数 ) => 一串 ;
} ;
output.global对象
string='self'
瞄准库时,尤其是当 库.类型
是 “嗯”
,此选项指示将使用哪个全局对象装入库。 要使UMD构建在浏览器和Node.js上都可用,请设置 output.global对象
选择 “这个”
。默认为 自己
用于类似Web的目标。
入口点的返回值将使用 输出库名称
。取决于 类型
选项,全局对象可以分别更改,例如。, 自己
, 全球的
,或 全局此
.
例如:
webpack.config.js
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “myLib” , 类型 : “嗯” ,
} , 文件名 : “myLib.js” , 全局对象 : “这个” ,
} ,
} ;
output.hashDigest(输出哈希摘要)
string=“十六进制”
生成哈希时要使用的编码。 来自Node的所有编码。 JS’ 哈希.digest
支持。 使用 “base64”
for文件名可能有问题,因为它具有字符 /
在字母表中。 同样地 “拉丁语1”
可以包含任何字符。
output.hashDigestLength(输出哈希摘要长度)
数字=20
要使用的哈希摘要的前缀长度。
提示 对于 网络包v5.65.0+
, 16
将用作 hashDigestLength(哈希摘要长度)
选项,当 实验.未来默认值
已启用。
output.hash函数
字符串=“md4”
功能
要使用的哈希算法。 Node的所有功能。 JS’ 加密.创建哈希
支持。 自 4.0.0α2
,的 hashFunction(哈希函数)
现在可以是自定义哈希函数的构造函数。 出于性能原因,可以提供非加密哈希函数。
模块 . 出口 = {
输出 : { hashFunction(哈希函数) : 要求 ( “metrohash” ) . MetroHash64 ,
} ,
} ;
确保哈希函数将具有 更新
和 消化
方法可用。
提示 自 webpack v5.54.0+
, hashFunction(哈希函数)
支架 xxhash64
作为一种更快的算法,当 实验.未来默认值
已启用。
output.hashSalt输出哈希盐
通过Node更新散列的可选salt。 JS’ 哈希更新
.
output.hotUpdateChunk文件名
字符串='[id]。 [fullhash].hotupdate.js'
自定义热更新块的文件名。 请参见 输出.filename
选项获取有关可能值的详细信息。
此处只允许使用以下占位符 [标识]
和 [完整哈希]
,默认值为:
webpack.config.js
模块 . 出口 = {
输出 : { hotUpdateChunk文件名 : '[id]。 [fullhash].hotupdate.js' ,
} ,
} ;
output.hotUpdate全局
一串
仅在以下情况下使用 目标
设置为 “网络”
,它使用JSONP来加载热更新。
JSONP函数用于异步加载热更新块。
有关详细信息,请参阅 output.chunk加载全局
.
output.hotUpdateMain文件名
string='[运行时]。 [fullhash].hotupdate.json’
功能
自定义主热更新文件名。 [完整散列]
和 [运行时]
可用作占位符。
输出.ife
布尔值=true
告诉webpack添加 IIFE公司 封装发出的代码。
模块 . 出口 = {
输出 : { 生活 : 真的 ,
} ,
} ;
output.ignoreBrowser警告
5.81.0+
布尔值=false
在生产中隐藏浏览器控制台中的警告。 此选项不影响终端/控制台输出。
webpack.config.js
模块 . 出口 = {
输出 : { ignoreBrowser警告 : 真的 ,
} ,
} ;
output.import函数名称
string=“导入”
本地人的姓名 导入()
功能。 可用于聚合填充,例如 dynamic-import-polyfill公司
.
webpack.config.js
模块 . 出口 = {
输出 : { 导入功能名称 : “__import__” ,
} ,
} ;
输出导入元名称
一串
本地人的姓名 进口.meta
对象(可以交换为polyfill)。
webpack.config.js
模块 . 出口 = {
输出 : { 导入元名称 : 'pseudoImport.meta' ,
} ,
} ;
输出库
输出一个公开入口点导出的库。
让我们看一个例子。
webpack.config.js
模块 . 出口 = {
进入 : './ src/index.js' , 输出 : { 图书馆 : “MyLibrary” ,
} ,
} ;
假设您已导出 源代码/索引.js
条目:
出口 功能 你好 ( 名称 ) { 慰问 . 日志 ( ` 你好 ${ 名称 } ` ) ;
}
现在,变量 我的图书馆
将与条目文件的导出绑定,下面介绍如何使用webpack捆绑库:
< 脚本 型钢混凝土 = " https://example.org/path/to/my-library.js " > </ 脚本 >
< 脚本 > 我的图书馆 . 你好 ( '网络包' ) ;
</ 脚本 >
在上面的示例中,我们将单个条目文件传递给 进入
然而,webpack可以接受 多种入口点 例如 阵列
,或一个 对象
.
如果您提供 阵列
作为 进入
点,只有数组中的最后一个才会被暴露。
模块 . 出口 = {
进入 : [ './ src/a.js' , './ src/b.js’ ] , 输出 : { 图书馆 : “MyLibrary” ,
} ,
} ;
如果 对象
作为 进入
点,可以使用 阵列
的语法 图书馆
:
模块 . 出口 = {
进入 : { 一 : './ src/a.js' , b条 : './ src/b.js’ ,
} , 输出 : { 文件名 : '[name].js' , 图书馆 : [ “MyLibrary” , '[姓名]' ] ,
} ,
} ;
假设两者 a.js公司
和 b.js公司
导出函数 你好
,以下是如何使用库:
< 脚本 型钢混凝土 = " https://example.org/path/to/a.js " > </ 脚本 >
< 脚本 型钢混凝土 = " https://example.org/path/to/b.js " > </ 脚本 >
< 脚本 > 我的图书馆 . 一 . 你好 ( '网络包' ) ; 我的图书馆 . b条 . 你好 ( '网络包' ) ;
</ 脚本 >
请参见 这个例子 了解更多信息。
请注意,如果要为每个入口点配置库选项,则上述配置将无法按预期工作。 下面是如何做到这一点 在每个条目下 :
模块 . 出口 = {
进入 : { 主要的 : {
进口 : './ src/index.js' , 图书馆 : {
名称 : “MyLibrary” , 类型 : “嗯” , umd名称定义 : 真的 ,
} ,
} , 另一个 : {
进口 : './ src/another.js' , 图书馆 : { 名称 : “另一个库” , 类型 : “commonjs2” ,
} ,
} ,
} ,
} ;
输出库.amdContainer
5.78.0+
使用容器(在全局空间中定义)进行调用 定义
/ 要求
AMD模块中的函数。
模块 . 出口 = {
输出 : { 图书馆 : { amd容器 : 'window[“clientContainer”]' , 类型 : “amd” ,
} ,
} ,
} ;
这将导致以下捆绑:
窗口 [ '客户端容器' ] . 定义 ( ) ;
输出库名称
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” ,
} ,
} ,
} ;
指定库的名称。
输出库类型
配置如何公开库。
类型: 一串
默认情况下包括的类型有 “var”
, '模块'
, “分配”
, '分配属性'
, “这个”
, “窗口”
, “自我”
, “全局”
, “commonjs”
, “commonjs2”
, “commonjs-module”
, “commonjs-static”
, “amd”
, “amd-require”
, “嗯”
, “umd2”
, 'jsonp'
和 “系统”
,但其他可能是通过插件添加的。
对于以下示例,我们将使用 _条目_返回_
指示入口点返回的值。
公开变量
这些选项将入口点的返回值(例如,无论导出的入口点是什么)分配给 输出库名称
在任何范围内都包括该捆绑包。
类型:'var'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “var” ,
} ,
} ,
} ;
加载库时 入口点的返回值 将分配给变量:
无功功率,无功功率 我的图书馆 = _条目_返回_ ;
我的图书馆 . 做点什么 ( ) ;
type:'assign'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “分配” ,
} ,
} ,
} ;
这将生成一个隐含的全局变量,该变量可能会重新分配现有值(请谨慎使用):
我的图书馆 = _条目_返回_ ;
请注意,如果 我的图书馆
之前没有定义,您的库将在全局范围内设置。
type:'分配属性'
5.16.0+
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : '分配属性' ,
} ,
} ,
} ;
类似 type:'assign'
但这是一个更安全的选择,因为它可以重复使用 我的图书馆
如果它已经存在:
我的图书馆 = 类型 我的图书馆 === '未定义' ? { } : 我的图书馆 ;
出口 功能 你好 ( 名称 ) { 慰问 . 日志 ( ` 你好 ${ 名称 } ` ) ;
}
我的图书馆 . 你好 ( “世界” ) ;
通过对象分配公开
这些选项将入口点的返回值(例如,导出的任何入口点)分配给以下定义的名称下的特定对象 输出库名称
.
type:“this”
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “这个” ,
} ,
} ,
} ;
这个 入口点的返回值 将分配给 这
在由命名的属性下 输出库名称
.的含义 这
随你:
这 [ “MyLibrary” ] = _条目_返回_ ;
这 . 我的图书馆 . 做点什么 ( ) ; 我的图书馆 . 做点什么 ( ) ;
type:'窗口'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : '我的库' , 类型 : '窗口' ,
} ,
} ,
} ;
这个 入口点的返回值 将分配给 窗口
对象使用 输出库名称
值。
窗口 [ “MyLibrary” ] = _条目_返回_ ; 窗口 . 我的图书馆 . 做点什么 ( ) ;
type:'全局'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “全局” ,
} ,
} ,
} ;
这个 入口点的返回值 将使用 输出库名称
值。 取决于 目标
值,全局对象可以分别更改,例如。, 自己
, 全球的
或 全球This
.
全球的 [ “MyLibrary” ] = _条目_返回_ ; 全球的 . 我的图书馆 . 做点什么 ( ) ;
type:'commonjs'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “commonjs” ,
} ,
} ,
} ;
这个 输入点的返回值 将分配给 出口
对象使用 输出库名称
值。 顾名思义,这在CommonJS环境中使用。
出口 [ “MyLibrary” ] = _条目_返回_ ;
要求 ( '我的库' ) . 做点什么 ( ) ;
模块定义系统
这些选项将产生一个带有完整头的捆绑包,以确保与各种模块系统兼容。 这个 输出库名称
选项将具有不同的含义,如下所示 输出库类型
选项。
type:'模块'
模块 . 出口 = {
实验 : { 输出模块 : 真的 ,
} , 输出 : { 图书馆 : {
类型 : '模块' ,
} ,
} ,
} ;
输出ES模块。
然而,此功能仍处于实验阶段,尚未完全支持,因此请确保启用 实验输出模块 事先。 此外,您可以在中跟踪开发进度 这个线程 .
类型:'commonjs2'
模块 . 出口 = {
输出 : { 图书馆 : {
类型 : “commonjs2” ,
} ,
} ,
} ;
这个 入口点的返回值 将分配给 模块.导出
顾名思义,它用于Node.js(CommonJS)环境:
模块 . 出口 = _条目_返回_ ;
要求 ( “MyLibrary” ) . 做点什么 ( ) ;
如果我们指定 输出库名称
具有 类型:commmonjs2
,入口点的返回值将分配给 模块导出。 [output.library.name]
.
type:'commonjs-static'
5.66.0+
模块 . 出口 = {
输出 : { 图书馆 : {
类型 : “commonjs-static” ,
} ,
} ,
} ;
单个导出将设置为上的属性 模块.导出
.名称中的“static”是指可进行静态分析的输出,因此命名导出可通过Node.js导入ESM:
输入:
出口 功能 做点什么 ( ) { }
输出:
功能 做点什么 ( ) { }
出口 . 做点什么 = __Web包导出(_E)__ . 做点什么 ;
消耗量(CommonJS):
常量 { 做点什么 } = 要求 ( './ output.cjs' ) ;
消耗量(ESM):
进口 { 做点什么 } 从 './ output.cjs' ;
类型:'amd'
这将使您的库作为AMD模块公开。
AMD模块要求条目块(例如 <脚本>
标记)用特定属性定义,例如to 定义
和 要求
通常由RequireJS或任何兼容的加载程序(如杏仁)提供。 否则,直接加载生成的AMD包将导致如下错误 未定义define
.
使用以下配置。。。
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “amd” ,
} ,
} ,
} ;
将使用名称定义生成的输出 “我的图书馆”
即:
定义 ( “MyLibrary” , [ ] , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
捆绑包可以作为脚本标记的一部分包含,可以这样调用捆绑包:
要求 ( [ “MyLibrary” ] , 功能 ( 我的图书馆 ) {
} ) ;
如果 输出库名称
未定义,则生成以下内容。
定义 ( 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
如果直接使用 <脚本>
标签。 它只能通过与RequireJS兼容的异步模块加载器通过该文件的实际路径工作,因此在本例中 输出路径
和 输出.filename
如果这些文件直接在服务器上公开,那么对于这个特定的设置可能会变得很重要。
type:'amd-require'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “amd-require” ,
} ,
} ,
} ;
这会将您的输出打包为立即执行的AMD 需要(依赖项,工厂)
包装器。
这个 “amd-require”
类型允许使用AMD依赖项,而不需要单独的稍后调用。 与 “amd”
类型,这取决于适当的 要求
功能 在加载webpack输出的环境中可用。
对于此类型,无法使用库名称。
类型:“umd”
这将在所有模块定义下公开您的库,允许它与CommonJS、AMD一起工作,并作为全局变量。 看看 UMD存储库 了解更多信息。
在这种情况下,您需要 图书馆名称
属性来命名模块:
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : 'umd' ,
} ,
} ,
} ;
最后,输出是:
( 功能 webpack通用模块定义 ( 根 , 工厂 ) {
如果 ( 类型 出口 === '对象' && 类型 模块 === '对象' ) 模块 . 出口 = 工厂 ( ) ;
其他的 如果 ( 类型 定义 === '功能' && 定义 . amd公司 ) 定义 ( [ ] , 工厂 ) ;
其他的 如果 ( 类型 出口 === '对象' ) 出口 [ “MyLibrary” ] = 工厂 ( ) ;
其他的 根 [ “MyLibrary” ] = 工厂 ( ) ;
} ) ( 全球的 , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
请注意,省略 图书馆名称
将导致将入口点返回的所有属性直接分配给根对象,如 对象分配部分 。示例:
模块 . 出口 = {
输出 : { 类型 : “嗯” ,
} ,
} ;
输出将是:
( 功能 webpack通用模块定义 ( 根 , 工厂 ) {
如果 ( 类型 出口 === '对象' && 类型 模块 === '对象' ) 模块 . 出口 = 工厂 ( ) ;
其他的 如果 ( 类型 定义 === '功能' && 定义 . amd公司 ) 定义 ( [ ] , 工厂 ) ;
其他的 {
无功功率,无功功率 一 = 工厂 ( ) ;
对于 ( 无功功率,无功功率 我 在里面 一 ) ( 类型 出口 === '对象' ? 出口 : 根 ) [ 我 ] = 一 [ 我 ] ;
}
} ) ( 全球的 , 功能 ( ) {
返回 _入口回转_ ;
} ) ;
您可以为指定对象 图书馆名称
对于每个目标的不同名称:
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : { 根 : “MyLibrary” , amd公司 : “我的名字” , 公共设施 : “我的普通图书馆” ,
} , 类型 : “嗯” ,
} ,
} ,
} ;
type:'系统'
这将以 系统注册器
模块。 此功能于年首次发布 网络包4.30.0 .
系统模块要求全局变量 系统
执行webpack捆绑包时,浏览器中会显示。 正在编译到 系统寄存器
格式允许您 System.import('/bundle.js')
无需额外配置,并将webpack捆绑包加载到系统模块注册表中。
模块 . 出口 = {
输出 : { 图书馆 : { 类型 : “系统” ,
} ,
} ,
} ;
输出:
系统 . 登记 ( [ ] , 功能 ( __WEBPACK_DYNAMIC_EXPORT(网络包_动态_导出)__ , __系统上下文__ ) {
返回 {
执行 : 功能 ( ) {
} ,
} ;
} ) ;
通过添加 输出库名称
除了具有 输出库类型
设置为 系统
,输出捆绑包将库名称作为参数 系统注册器
:
系统 . 登记 (
“MyLibrary” ,
[ ] ,
功能 ( __WEBPACK_DYNAMIC_EXPORT(网络包_动态_导出)__ , __系统上下文__ ) {
返回 {
执行 : 功能 ( ) {
} ,
} ;
}
) ;
其他类型
类型:'jsonp'
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “jsonp” ,
} ,
} ,
} ;
这将把入口点的返回值包装到jsonp包装器中。
我的图书馆 ( _条目_返回_ ) ;
库的依赖项将由 外部
配置。
输出.库.导出
指定应公开为库的导出。
它是 未定义
默认情况下,它将导出整个(名称空间)对象。 下面的示例演示了使用时此配置的效果 output.library.type:'var'
.
模块 . 出口 = { 输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “var” ,
出口 : “默认” ,
} ,
} ,
} ;
入口点的默认导出将指定给库名称:
无功功率,无功功率 我的图书馆 = _条目_返回_ . 违约 ;
您可以将数组传递给 输出.库.导出
此外,它还将被解释为要分配给库名称的模块的路径:
模块 . 出口 = { 输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “var” ,
出口 : [ “默认” , '子模块' ] ,
} ,
} ,
} ;
这是图书馆代码:
无功功率,无功功率 我的图书馆 = _条目_返回_ . 违约 . 子模块 ;
输出库辅助注释
在UMD包装中添加注释。
类型: 字符串{amd?:string,commonjs?:strin,commonjs2?:字符串,根?:string}
为每个插入相同的注释 城市管理局
类型,集 辅助注释
转换为字符串:
模块 . 出口 = {
模式 : “开发” , 输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “嗯” , 辅助注释 : '测试注释' ,
} ,
} ,
} ;
这将产生以下结果:
( 功能 webpack通用模块定义 ( 根 , 工厂 ) {
如果 ( 类型 出口 === '对象' && 类型 模块 === '对象' ) 模块 . 出口 = 工厂 ( ) ;
其他的 如果 ( 类型 定义 === '功能' && 定义 . amd公司 ) 定义 ( [ ] , 工厂 ) ;
其他的 如果 ( 类型 出口 === '对象' ) 出口 [ “MyLibrary” ] = 工厂 ( ) ;
其他的 根 [ “MyLibrary” ] = 工厂 ( ) ;
} ) ( 自己 , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
对于细粒度控制,传递对象:
模块 . 出口 = {
模式 : “开发” , 输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “嗯” , 辅助注释 : { 根 : '根注释' , 公共设施 : “CommonJS注释” , 通用js2 : “CommonJS2注释” , amd公司 : “AMD评论” ,
} ,
} ,
} ,
} ;
output.library.umdNamed定义
布尔值
使用时 输出库类型:“umd”
,设置 output.library.umdNamed定义
到 真的
将命名UMD构建的AMD模块。 否则,匿名 定义
使用。
模块 . 出口 = {
输出 : { 图书馆 : { 名称 : “MyLibrary” , 类型 : “嗯” , umd名称定义 : 真的 ,
} ,
} ,
} ;
AMD模块将是:
定义 ( “MyLibrary” , [ ] , 工厂 ) ;
输出.库导出
一串
[字符串]
配置将通过 库目标
。它是 未定义
默认情况下,如果设置 库目标
转换为空字符串,例如。 ''
它将导出整个(名称空间)对象。 下面的示例演示了使用时此配置的效果 libraryTarget:“var”
.
支持以下配置:
libraryExport:'默认'
- 入口点的默认导出 将分配给库目标:
无功功率,无功功率 我的默认模块 = _条目_返回_ . 违约 ;
libraryExport:'我的模块'
- 指定的模块 将分配给库目标:
无功功率,无功功率 我的模块 = _条目_返回_ . 我的模块 ;
libraryExport:['MyModule','MySubModule']
-数组被解释为 模块的路径 要分配给库目标:
无功功率,无功功率 我的子模块 = _条目_返回_ . 我的模块 . 我的子模块 ;
使用 库导出
上面指定的配置,可以这样使用生成的库:
我的默认模块 . 做点什么 ( ) ; 我的模块 . 做点什么 ( ) ; 我的子模块 . 做点什么 ( ) ;
输出库目标
字符串=“var”
配置如何公开库。 可以使用以下任一选项。 请注意,此选项与指定给 输出库
。对于以下示例,假设 输出库
配置为 我的图书馆
.
公开变量
这些选项将入口点的返回值(例如,导出的任何入口点)分配给 输出库
无论捆绑包包含在什么范围。
libraryTarget:“var”
加载库时 入口点的返回值 将被分配给一个变量:
无功功率,无功功率 我的图书馆 = _条目_返回_ ;
我的图书馆 . 做点什么 ( ) ;
libraryTarget:'分配'
这将生成一个隐含的全局变量,该变量可能会重新分配现有值(请谨慎使用):
我的图书馆 = _条目_返回_ ;
请注意,如果 我的图书馆
之前没有定义,您的库将在全局范围中设置。
libraryTarget:'分配属性'
5.16.0+
将返回值复制到目标对象(如果存在),否则先创建目标对象:
我的图书馆 = 类型 我的图书馆 === '未定义' ? { } : 我的图书馆 ;
出口 功能 你好 ( 名称 ) { 慰问 . 日志 ( ` 你好 ${ 名称 } ` ) ;
}
我的图书馆 . 你好 ( “世界” ) ;
通过对象分配公开
这些选项将入口点的返回值(例如,导出的任何入口点)分配给以下定义的名称下的特定对象 输出库
.
如果 输出库
未分配非空字符串,则默认行为是,入口点返回的所有属性都将按照为特定 输出库目标
,通过以下代码片段:
( 功能 ( 电子 , 一 ) {
对于 ( 无功功率,无功功率 我 在里面 一 ) { 电子 [ 我 ] = 一 [ 我 ] ;
}
} ) ( 输出 . 库目标 , _入口回转_ ) ;
libraryTarget:“此”
这个 入口点的返回值 将在名为的属性下分配给此 输出库
.的含义 这
随你:
这 [ “MyLibrary” ] = _条目_返回_ ;
这 . 我的图书馆 . 做点什么 ( ) ; 我的图书馆 . 做点什么 ( ) ;
libraryTarget:'窗口'
这个 入口点的返回值 将分配给 窗口
对象使用 输出库
值。
窗口 [ '我的库' ] = _条目_返回_ ; 窗口 . 我的图书馆 . 做点什么 ( ) ;
libraryTarget:“全局”
这个 入口点的返回值 将分配给 全球的
对象使用 输出库
值。
全球的 [ “MyLibrary” ] = _入口回转_ ; 全球的 . 我的图书馆 . 做点什么 ( ) ;
libraryTarget:'commonjs'
这个 入口点的返回值 将分配给 出口
对象使用 输出库
值。 顾名思义,这在CommonJS环境中使用。
出口 [ “MyLibrary” ] = _条目_返回_ ;
要求 ( “MyLibrary” ) . 做点什么 ( ) ;
模块定义系统
这些选项将产生一个带有完整头的捆绑包,以确保与各种模块系统兼容。 这个 输出库
选项将具有不同的含义,如下所示 输出库目标
选项。
libraryTarget:'模块'
输出ES模块。 确保启用 实验输出模块 事先。
请注意,此功能尚未完全支持,请在中跟踪进度 这个线程 .
libraryTarget:“commonjs2”
这个 入口点的返回值 将分配给 模块.导出
。顾名思义,这在CommonJS环境中使用:
模块 . 出口 = _条目_返回_ ;
要求 ( “MyLibrary” ) . 做点什么 ( ) ;
请注意 输出库
不能用于此特定 输出库目标
,有关详细信息,请 阅读此问题 .
库目标:“amd”
这将把你的库暴露为AMD模块。
AMD模块要求条目块(例如 <脚本>
标记)用特定属性定义,例如to 定义
和 要求
通常由RequireJS或任何兼容的加载程序(如杏仁)提供。 否则,直接加载生成的AMD包将导致如下错误 未定义define
.
使用以下配置。。。
模块 . 出口 = {
输出 : { 图书馆 : “MyLibrary” , 库目标 : “amd” ,
} ,
} ;
生成的输出将定义为“MyLibrary”,即。
定义 ( “MyLibrary” , [ ] , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
捆绑包可以作为脚本标记的一部分包含,可以这样调用捆绑包:
要求 ( [ “MyLibrary” ] , 功能 ( 我的图书馆 ) {
} ) ;
如果 输出库
未定义,则生成以下内容。
定义 ( [ ] , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
如果直接使用 <脚本>
标签。 它只能通过与RequireJS兼容的异步模块加载器通过该文件的实际路径工作,因此在本例中 输出路径
和 输出.filename
如果这些文件直接在服务器上公开,那么对于这个特定的设置可能会变得很重要。
libraryTarget:“amd-require”
这会将您的输出打包为立即执行的AMD 需要(依赖项,工厂)
包装器。
这个 “amd-require”
target允许使用AMD依赖项,而不需要单独的稍后调用。 与 'amd'
目标,这取决于适当的 要求
功能 在加载webpack输出的环境中可用。
对于此目标,将忽略库名称。
libraryTarget:“umd”
这将在所有模块定义下公开您的库,允许它与CommonJS、AMD一起工作,并作为全局变量。 看看 UMD存储库 了解更多信息。
在这种情况下,您需要 图书馆
属性来命名模块:
模块 . 出口 = {
输出 : { 图书馆 : “MyLibrary” , 库目标 : “嗯” ,
} ,
} ;
最后,输出是:
( 功能 webpack通用模块定义 ( 根 , 工厂 ) {
如果 ( 类型 出口 === '对象' && 类型 模块 === '对象' ) 模块 . 出口 = 工厂 ( ) ;
其他的 如果 ( 类型 定义 === '功能' && 定义 . amd公司 ) 定义 ( [ ] , 工厂 ) ;
其他的 如果 ( 类型 出口 === '对象' ) 出口 [ “MyLibrary” ] = 工厂 ( ) ;
其他的 根 [ “MyLibrary” ] = 工厂 ( ) ;
} ) ( 类型 自己 !== '未定义' ? 自己 : 这 , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
请注意,省略 图书馆
将导致入口点返回的所有属性的分配直接分配给根对象,如 对象分配部分 。示例:
模块 . 出口 = {
输出 : { 库目标 : “嗯” ,
} ,
} ;
输出将是:
( 功能 webpack通用模块定义 ( 根 , 工厂 ) {
如果 ( 类型 出口 === '对象' && 类型 模块 === '对象' ) 模块 . 出口 = 工厂 ( ) ;
其他的 如果 ( 类型 定义 === '功能' && 定义 . amd公司 ) 定义 ( [ ] , 工厂 ) ;
其他的 {
无功功率,无功功率 一 = 工厂 ( ) ;
对于 ( 无功功率,无功功率 我 在里面 一 ) ( 类型 出口 === '对象' ? 出口 : 根 ) [ 我 ] = 一 [ 我 ] ;
}
} ) ( 类型 自己 !== '未定义' ? 自己 : 这 , 功能 ( ) {
返回 _条目_返回_ ;
} ) ;
自webpack 3.1.0以来,您可以为指定对象 图书馆
对于每个目标的不同名称:
模块 . 出口 = {
输出 : { 图书馆 : { 根 : “MyLibrary” , amd公司 : “我的名字” , 公共设施 : “我的普通图书馆” ,
} , 库目标 : “嗯” ,
} ,
} ;
libraryTarget:'系统'
这将把你的库公开为 系统注册器
模块。 此功能于年首次发布 网络包4.30.0 .
系统模块要求全局变量 系统
执行webpack捆绑包时,浏览器中会显示。 正在编译到 系统注册器
格式允许您 System.import('/bundle.js')
无需额外配置,并将webpack捆绑包加载到系统模块注册表中。
模块 . 出口 = {
输出 : { 库目标 : “系统” ,
} ,
} ;
输出:
系统 . 登记 ( [ ] , 功能 ( _出口 ) {
返回 { 设置器 : [ ] ,
执行 : 功能 ( ) {
} ,
} ;
} ) ;
通过添加 输出库
除了具有 输出库目标
设置为 系统
,输出捆绑包将库名称作为参数 系统注册器
:
系统 . 登记 ( “我的名字” , [ ] , 功能 ( _出口 ) {
返回 { 设置器 : [ ] ,
执行 : 功能 ( ) {
} ,
} ;
} ) ;
您可以访问 SystemJS上下文 通过 __系统上下文__
:
慰问 . 日志 ( __系统上下文__ . 元 . 网址 ) ;
__系统上下文__ . 进口 ( './ 其他文件.js' ) . 然后 ( ( 米 ) => { 慰问 . 日志 ( 米 ) ;
} ) ;
其他目标
libraryTarget:“jsonp”
这将把入口点的返回值包装到jsonp包装器中。
我的图书馆 ( _条目_返回_ ) ;
库的依赖项将由 外部
配置。
输出模块
布尔值=false
将JavaScript文件输出为模块类型。 默认情况下禁用,因为这是一个实验功能。
启用后,webpack将设置 输出.ife
到 假
, 输出脚本类型
到 '模块'
和 terserOptions.模块
到 真的
内部。
如果您正在使用webpack编译一个供他人使用的库,请确保设置 输出库目标
到 '模块'
什么时候 输出模块
是 真的
.
模块 . 出口 = {
实验 : { 输出模块 : 真的 ,
} , 输出 : { 模块 : 真的 ,
} ,
} ;
输出路径
string=路径联接(process.cwd(),'dist')
输出目录作为 绝对的 路径。
webpack.config.js
常量 路径 = 要求 ( “路径” ) ; 模块 . 出口 = {
输出 : { 路径 : 路径 . 决定 ( __目录名 , '距离/资产' ) ,
} ,
} ;
请注意 [完整散列]
在这个参数中将被一个散列的编译所取代。 请参阅 缓存指南 了解详细信息。
输出路径信息
布尔值=真
string:“verbose”
告诉webpack在捆绑包中包含注释,其中包含有关所包含模块的信息。 此选项默认为 真的
在里面 发展
和 假
在里面 生产
模式 分别是。 “详细”
显示了更多信息,如导出、运行时要求和紧急救援。
webpack.config.js
模块 . 出口 = {
输出 : { 返回文件路径的信息 : 真的 ,
} ,
} ;
提示 它还向生成的捆绑包中添加了一些关于树抖动的信息。
输出公共路径
当使用按需加载或加载图像、文件等外部资源时,这是一个重要的选项。如果指定了错误的值,则在加载这些资源时会收到404个错误。
此选项指定 公共URL 在浏览器中引用时输出目录的。 相对URL相对于HTML页面进行解析(或 <基础>
标签)。 服务器相关URL、协议相关URL或绝对URL也是可能的,有时也是必需的,例如在CDN上托管资产时。
该选项的值将作为运行时或加载程序创建的每个URL的前缀。 因为这个 此选项的值以结尾 /
在大多数情况下。
需要考虑的规则:您的URL 输出路径
从HTML页面的视图中。
webpack.config.js
常量 路径 = 要求 ( '路径' ) ; 模块 . 出口 = {
输出 : { 路径 : 路径 . 决定 ( __目录名 , “公共/资产” ) , 公共路径 : ' https://cdn.example.com/assets/ ' ,
} ,
} ;
对于此配置:
webpack.config.js
模块 . 出口 = {
输出 : { 公共路径 : '/assets/' , chunk文件名 : '[id].cchunk.js' ,
} ,
} ;
对块的请求如下所示 /资产/4.chunk.js
.
输出HTML的加载器可能会发出如下信号:
< 链接 href公司 = " /资产/微调器.gif " />
或在CSS中加载图像时:
背景-图像 : 网址 ( /资产/微调器.gif ) ;
webpack-dev-server还接受来自 公共路径
,用于确定从何处提供输出文件。
请注意 [完整散列]
在此参数中,将替换为编译的哈希。 请参阅 缓存指南 了解详细信息。
示例:
模块 . 出口 = {
输出 : {
公共路径 : “自动” , 公共路径 : ' https://cdn.example.com/assets/ ' , 公共路径 : “//cdn.example.com/assets/” , 公共路径 : '/assets/' , 公共路径 : '资产/' , 公共路径 : '../ 资产/' , 公共路径 : '' ,
} ,
} ;
在以下情况下 公共路径
的输出文件在编译时不知道,可以保留为空,并在运行时使用 自由变量 __网络包公共路径__
.
__网络包公共路径__ = myRuntime公共路径 ;
请参见 这次讨论 有关的详细信息 __网络包公共路径__
.
输出脚本类型
string:'模块'|'文本/javascript'
布尔值=false
此选项允许使用自定义脚本类型加载异步块,例如 <script type=“模块”…>
.
提示 如果 输出模块
设置为 真的
, 输出脚本类型
将默认为 '模块'
而不是 假
.
模块 . 出口 = {
输出 : { 脚本类型 : '模块' ,
} ,
} ;
output.sourceMap文件名
字符串=“[文件].map[查询]”
配置如何命名源映射。 仅在以下情况下生效 开发工具
设置为 '源映射'
,写入输出文件。
这个 [姓名]
, [标识]
, [完整散列]
和 [春喀什语]
替换 输出.filename
可以使用。 除此之外,您还可以使用中Filenamelevel下列出的替换 模板字符串 .
output.sourcePrefix(输出源前缀)
字符串=“”
更改输出包中每一行的前缀。
webpack.config.js
模块 . 出口 = {
输出 : { 源前缀 : “\t” ,
} ,
} ;
输出严格模块错误处理
根据EcmaScript Modules规范处理模块加载错误,但需要付出性能代价。
模块 . 出口 = {
输出 : { strictModule错误处理 : 真的 ,
} ,
} ;
output.stritModule异常处理
布尔值=false
告诉webpack从模块实例缓存中删除模块( 必需品缓存
)如果发生异常 要求
d。
默认为 假
出于性能原因。
设置为时 假
,模块没有从缓存中删除,这导致只在第一个模块上引发异常 要求
调用(使其与node.js不兼容)。
例如,考虑 模块.js
:
扔 新的 错误 ( “错误” ) ;
使用 strictModule异常处理
设置为 假
,只有第一个 要求
引发异常:
要求 ( '模块' ) ;
要求 ( '模块' ) ;
相反,使用 strictModule异常处理
设置为 真的
,全部 要求
此模块的引发异常:
要求 ( '模块' ) ;
要求 ( '模块' ) ;
output.trustedTypes(输出可信类型)
真的
一串
对象
5.37.0+
控制 受信任的类型 兼容性。 启用后,webpack将检测受信任类型支持,如果受支持,则使用受信任类型策略创建其动态加载的脚本URL。 当应用程序在 所需的可信类型
内容安全策略指令。
默认情况下它是禁用的(没有兼容性,脚本URL是字符串)。
设置为时 真的
,webpack将使用 输出唯一名称
作为受信任类型策略名称。
当设置为非空字符串时,其值将用作策略名称。
设置为对象时,策略名称取自对象的 策略名称
财产。
webpack.config.js
模块 . 出口 = {
输出 : {
受信任的类型 : { 策略名称 : '我的应用程序#webpack' ,
} ,
} ,
} ;
output.trustedTypes.onPolicyCreation失败
string='stop':'继续'|'停止'
5.82.0+
确定是否在预期情况下继续装载 “脚本”的require-trusted-types
调用时未强制执行或立即失败 trustedTypes.createPolicy(…)
由于CSP中缺少策略名称而失败 受信任的类型
列表或重复。
模块 . 出口 = {
输出 : {
受信任的类型 : { 策略名称 : '我的应用程序#webpack' , onPolicyCreation失败 : “继续” ,
} ,
} ,
} ;
输出.umdNamedDefine
布尔值
使用时 库目标:“umd”
,设置 output.umdNamed定义
到 真的
将命名UMD构建的AMD模块。 否则为匿名 定义
使用。
模块 . 出口 = {
输出 : { umd名称定义 : 真的 ,
} ,
} ;
输出唯一名称
一串
webpack构建的唯一名称,以避免在使用全局变量时多个webpack运行时发生冲突。 默认为 输出库
名称或来自的包名称 package.json包
在上下文中,如果两者都找不到,则将其设置为 ''
.
输出唯一名称
将用于为以下对象生成唯一全局变量:
webpack.config.js
模块 . 出口 = {
输出 : { 唯一名称 : “my-package-xyz” ,
} ,
} ;
output.wasm加载
假
“fetch-streaming”|“fetch”|“异步模式”
一串
选项设置加载WebAssembly模块的方法。 默认情况下包括的方法有 '获取'
(web/WebWorker), '异步节点'
(Node.js),但其他可能是通过插件添加的。
默认值可能受不同的 目标
:
默认为 “获取”
如果 目标
设置为 “网页”
, '网络工作者'
, “电子渲染器”
或 '节点webkit'
.
默认为 '异步节点'
如果 目标
设置为 '节点'
, '异步节点'
, “电子主电源”
或 “电子预加载”
.
模块 . 出口 = {
输出 : { wasm正在加载 : “获取” ,
} ,
} ;
输出.webassemblyModuleFilename
字符串=“[hash].module.wasm”
指定WebAssembly模块的文件名。 它应该在 输出路径
目录
模块 . 出口 = {
输出 : { Web组件模块文件名 : '[id]。 [散列].wasm' ,
} ,
} ;
output.workerChunk加载
string:“require”|“import-scripts”|“async-node”|“导入”|“universal”
布尔值:false
新选项 workerChunk加载
控制工人的区块加载。
webpack.config.js
模块 . 出口 = {
输出 : { workerChunkLoading(工人阻塞加载) : 假 ,
} ,
} ;
输出.workerPublicPath
一串
为Worker设置公共路径,默认值为 输出公共路径 。只有当辅助脚本与其他脚本位于不同的路径时,才使用此选项。
webpack.config.js
模块 . 出口 = {
输出 : { worker公共路径 : '/workerPublicPath2/' ,
} ,
} ;
output.workerWasm加载
假
“fetch-streaming”|“fetch”|“异步模式”
一串
选项设置在workers中加载WebAssembly模块的方法,默认值为 输出.wasm加载 .
webpack.config.js
模块 . 出口 = {
输出 : { worker Wasm加载 : “获取” ,
} ,
} ;