Webpack 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Webpack 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Webpack 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
开源组织 Linux 基金会
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2014-07-27

软件简介

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。

TL;DR

  • 捆绑 ES 模块CommonJS 和 AMD 模块(以及绑定)。
  • 可以创建在运行时异步加载的单个捆绑包或多个块(以减少初始加载时间)。
  • 在编译过程中解决了依赖性,从而减小了运行时大小。
  • 加载程序可以在编译时对文件进行预处理,例如,将 TypeScript 转换为 JavaScript、将Handlebars字符串转换为已编译函数、将图像转换为 Base64,等等。
  • 高度模块化的插件系统可以执行您的应用程序所需的其他任何操作。

原理

示例代码

// webpack is a module bundler
// This means webpack takes modules with dependencies
//   and emits static assets representing those modules.

// dependencies can be written in CommonJs
var commonjs = require("./commonjs");
// or in AMD
define(["amd-module", "../file"], function(amdModule, file) {
    // while previous constructs are sync
    // this is async
    require(["big-module/big/file"], function(big) {
         // for async dependencies webpack splits
         //  your application into multiple "chunks".
         // This part of your application is
         //  loaded on demand (Code Splitting)
        var stuff = require("../my/stuff");
        // "../my/stuff" is also loaded on demand
        //  because it's in the callback function
        //  of the AMD require
    });
});


require("coffee!./cup.coffee");
// "Loaders" can be used to preprocess files.
// They can be prefixed in the require call
//  or configured in the configuration.
require("./cup");
// This does the same when you add ".coffee" to the extensions
//  and configure the "coffee" loader for /\.coffee$/


function loadTemplate(name) {
    return require("./templates/" + name + ".jade");
    // many expressions are supported in require calls
    // a clever parser extracts information and concludes
    //  that everything in "./templates" that matches
    //  /\.jade$/ should be included in the bundle, as it
    //  can be required.
}


// ... and you can combine everything
function loadTemplateAsync(name, callback) {
    require(["bundle?lazy!./templates/" + name + ".jade"], 
      function(templateBundle) {
        templateBundle(callback);
    });
}
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(7) 发布并加入讨论🔥
发表了资讯
2024/09/30 13:54

Webpack v5.95.0 已发布,模块打包器

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.95.0 已发布,具体更新内容如下: Bug 修复 修复尝试读取无法读取的符号链接类文件时挂起的问题 处理导入上下文元素依赖的default split chunks 后合并 duplicate chunks call 为动态导入同一文件两次和重组生成正确代码 使用内容哈希作为提取 DataURI 的 [base] 和 [name] [Types] 使EnvironmentPlugin默认值类型不那么严格 [Types] Typescri...

1
0
发表了资讯
2024/07/19 13:41

Webpack v5.93.0 已发布,模块打包器

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.93.0 已发布,具体更新内容如下: Bug 修复 生成正确的 runtime chunks 相对路径 在默认 log level 下DefinePlugin更安静 修复命名空间导入中的 mangle destructuring default 修复了 module federation 时急切共享模块的消耗 去除斜线以获得 pretty regexp 为 CSS 生成器选项计算正确的 contenthash 新功能 为 asset modules 添加了binary生成...

0
0
发表了资讯
2024/03/21 15:42

Webpack v5.91.0 已发布,模块打包器

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.91.0 现已发布,具体更新内容如下: Bug 修复 允许unsafeCache选项作为代理对象 标准化snapshot.unmanagedPaths选项 修复了fs类型 修复了解析的插件类型 修复错误计算 postOrderIndex 的问题 修复了 watching types 外部 JS 导入的输出导入属性/导入断言 当 DllPlugin 需要生成多个 manifest 文件,但路径相同时抛出错误 [CSS] 为外部 CSS 导入...

0
0
发表了资讯
2023/06/02 07:11

Webpack v5.85.0 已发布,模块打包器

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.85.0 现已发布,具体更新内容如下: New Features 添加readonly缓存模式 #15470 规范化 esm 命名空间和链式成员/调用表达式的属性访问器 #17203 加载程序上下文中支持 environment#17281 在 worklets 中为addModule()引入一种新的语法*context.audioWorklet.addModule()#17212 Bug 修复 修复未知模块类型字符串的类型回归 #17266 Developer E...

0
0
发表了资讯
2023/05/25 07:25

Webpack v5.84.0 现已发布

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。 Webpack v5.84.0 现已发布,具体更新内容如下: 新功能 SourceMapDevToolPlugin 现在支持 append 选项 #17252 修复 修复了在属性和方法中导入名称遮蔽时引用类名的多个错误 #17233 允许定义插件速记属性 #17231 [CSS] - 修复解析 @import 的边缘情况 #17229 开发者体验 增加序列化类的类型覆盖率 #17243 将 JavascriptParser 和 ModuleDependency 子类的...

0
1
发表了资讯
2023/05/07 07:23

Webpack 5.82 已发布

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.82.0 现已发布,具体更新内容如下: 新功能 [CSS] - 添加 URL 依赖支持,以通过模块联合使用共享模块 #16945 允许 webpack-cli 在 ESM 中 #17088 允许为可信类型指定“onPolicyCreationFailure”模式 #16990 Bug修复 [CSS] - 尊重来自父CSS 模块的 media / supports / layer #17115 [CSS] - 对任何 @import 规则的警告和支持必须先于所有其他规...

0
0
发表了资讯
2023/04/21 07:03

Webpack v5.80.0 已发布,模块打包器

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.80.0 现已发布,具体更新内容如下: New Features 在import.meta中支持解构赋值 #16996 支持在AwaitExpression中进行解构赋值的 treeshaking #16995 引入 errorsSpace和warningsSpace,使统计中的 traces 更易读#15450 Bug 修复 [CSS] - 修复合并后的 CSS Chunks 的运行时生成错误 #16903 [CSS] - 妥善处理url()/src()/image-set()/image()#1...

0
1
发表了资讯
2023/04/14 07:33

Webpack v5.79.0 已发布,模块打包器

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.79.0 现已发布,具体更新内容如下: New Features webpack 现在将支持 treeshaking namespaced 的导入和DefinePlugin的简单解构方案 #16941 Bug 修复 在DefaultStatsPrinter中截断极长的模块名称 #16882 在DllPlugin的名称选项中添加[contenthash]模板支持 #16935 修复了readRecordscompiler hook 在与ReadRecordsPlugin结合使用时导致挂起的问...

0
2
发表了资讯
2022/11/10 07:33

Webpack v5.75.0 已发布

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.75.0 现已发布,具体更新内容如下: Bug 修复 避免NaN% 在代码中使用冲突的 chunk name 时显示 correct error HMR 代码在尝试访问window之前测试其存在性 修复eval-nosources-*实际排除来源 修复没有从处理模块返回模块的 race condition 修复运行时代码中 standalong semicolon 的位置问题 Features 在节点中使用实验性 CSS 时添加对外部 CS...

2
0
发表了资讯
2022/07/26 07:03

Webpack v5.74.0 已发布

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。Webpack v5.74.0 现已发布,具体更新内容如下: Features 添加resolve.extensionAlias选项,允许别名扩展名 当你被迫为导入文件添加 .js 扩展名时,这很有用,因为文件真正的扩展名是 .ts(typecript + "type": "module")。 添加对 ES2022 features 的支持,例如静态块 为ProvidePlugin添加 Tree Shaking 支持 Bug 修复 当某些构建依赖项位于不同的 Wind...

0
1
发表了资讯
2022/05/12 07:04

Webpack v5.72.1 已发布

Webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。 目前 Webpack 5.72.1 已发布,带来少量修复: 使用 HMR 修复 __webpack_nonce__ 在某些情况下修复 in 运算符 修复 json 解析错误信息 使用 this.importModule 修复模块连接 升级 enhanced-resolve 更新公告:https://github.com/webpack/webpack/releases/tag/v5.72.1...

2
0
发表了资讯
2022/04/02 07:30

Webpack v5.71.0 已发布

Webpack v5.71.0 已发布,带来如下改动: 特性 使用包含占位符的 output.library 时,为 uniqueName 选择更智能的默认值 支持带有 in 导入绑定的表达式 尽可能使用箭头函数生成 UMD 代码 Bug 修复 将 ContextModule 的源映射源名称修复为 relative 修复模块模块中的 chunkLoading 选项 修复 evaluateExpression 返回 null 的边缘情况 在导入的绑定中保留可选链 即使不使用块加载,也包括基本 URI 的运行时代码 通过 ESM 导入 no...

0
1
发表了资讯
2022/03/05 07:56

Webpack v 5.70.0 已发布

Webpack v 5.70.0 发布了!Webpack 是一个常见的静态模块打包工具,主要用途是在浏览器上打包 JavaScript 文件。 版本主要改动如下: 新特性 更新 ESM 支持的 node.js 版本约束 添加baseUri到entry选项,以配置静态基础 uri(基于 new URL()) 尽可能按字母顺序对命名空间对象中的导出进行排序 添加 __webpack_exports_info__.name.canMangle 添加代理支持到 experiments.buildHttp import.meta.webpackContext 作为 ESM 的替代...

1
0
发表了资讯
2022/02/18 07:05

Webpack 5.69.0 发布,模块打包器

webpack 5.69.0 现已发布。webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。 具体更新内容如下: Features 启用 ESM 输出模式时自动切换到 ESM 兼容环境 在创建上下文模块时处理多个替代目录(e. g. due to resolve.alias or resolve.modules) 添加util/types到 node.js 内置模块 添加__webpack_exports_info__.<name>.canMangleapi Bug 修复 修复 chunk graph generation 中的错误,该错误导致模块被包...

0
1
发表了资讯
2022/01/26 07:07

Webpack 5.67.0 发布,模块打包器

webpack 5.67.0 现已发布。webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。 具体更新内容如下: Features 为资源资产模块添加“outputPath”配置选项 在 eval source maps 中支持 Trusted Types experiments.css 允许只为节点中的 css 生成导出 添加SyncModuleIdsPlugin,在服务器和客户端编译中同步模块 ID 为DeterministicModuleIdsPlugin添加更多选项,以允许生成相同的 id Developer Experience 在统...

0
1
发表了资讯
2021/11/27 07:11

Webpack 5.64.4 发布,模块打包器

webpack 5.64.4 现已发布。webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。 具体更新内容如下: Bug 修复 修复了标记的模板文字评估 修复带有 ESM 的 ModuleFederation 修复带有 intial splitChunks 的 outputModule Performance 升级 watchpack 以加快 watcher 的更新 在 watchpack 和 webpack 中分别跟踪文件和目录时间戳 Developer Experience 在 mismatch warning 中显示单例共享模块的来源 更新说明...

0
0
发表了资讯
2021/11/16 07:19

webpack 5.64.1 发布 ,静态模块打包工具

Webpack v 5.64.1 发布了!Webpack 是一个常见的静态模块打包工具,主要用途是在浏览器上打包 JavaScript 文件。 版本主要改动如下: 修复 managedPaths 中的正则表达式,以排除额外的斜杠。 使 module.accept errorHandler 在类型中可选。 在 require.ensure 中使用 require(...).property 时正确创建异步块。 修复了 output.clean: true 中符号链接的清理问题。 在 managedPaths (node 模块) 中使用 unsafeCache 修复更改检测...

1
1
发表了资讯
2021/11/07 07:36

webpack 5.62.0 发布 ,静态模块打包工具

Webpack v 5.62.0 发布了!Webpack 是一个常见的静态模块打包工具,主要用途是在浏览器上打包 JavaScript 文件。 新特性 加入 parser.javascript.reexportExportsPresence: false ,用于 TypeScript 类型再导出。允许在 export ... from "..." 到 export type ... from "..." 迁移期间对不存在的导出禁用警告。 添加experiments.backCompat: false,用于禁用一些高性能消耗的功能,以获得更好的性能。 Bug 修复 用 ['catch'] 代...

1
1
发表了资讯
2021/10/21 07:16

Webpack 发布 5.59.0 版本,静态模块打包工具

Webpack v5.59.0 发布了!Webpack 是一个常见的静态模块打包工具,主要用途是在浏览器上打包 JavaScript 文件。 此版本主要更新内容如下: 新特性 生成代码的时候为 Object()加入/*#__PURE__*/ 注释 为 managed/immutablePath 加入正则表达式和函数支持。 在构建组件的多个阶段加入 Hooks 。 优化 experiments.buildHttp: 允许共享缓存 添加许可名单 加入 splitChunks.minSizeReduction 选项。 bug 修复 修复了 Data URLs 的内...

2
1
发表了资讯
2021/10/08 07:25

webpack 5.58.0 发布,模块打包器

webpack 5.58.0 现已发布。webpack 是一个模块打包器,主要目的是在浏览器上打包 JavaScript 文件。 具体更新内容如下: Features 为 readResource 添加 hook 添加diagnostics_channel到 node builtins Performance 提高 chunk graph creation 性能 添加 cacheUnaffected 缓存支持 删除一些没有区别的缓存 提高 splitChunks 的性能 提高 chunk conditions 性能 更新说明:https://github.com/webpack/webpack/releases/tag/v5....

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
7 评论
112 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部