【发布时间】:2014-05-17 11:32:47
【问题描述】:
我想使用 gulp 构建 JavaScript 文件包。
例如,我的项目中有以下结构:
- /vendor/vendor1/vendor1.js
- /vendor/vendor2/vendor2.js
- /js/includes/include1.js
- /js/includes/include2.js
- /js/bundle1.js
- /js/bundle2.js
有供应商包含 (1-2)、本地包含 (3-4) 和捆绑文件 (5-6)。
供应商包含的只是使用bower 或composer 安装的第三方JavaScript 库。它们可以是 CommonJS、AMD 或只是一个普通的 jQuery 插件。
我想在捆绑文件中指定依赖项,如下所示:
/js/bundle1.js
(function() {
// Vendor includes.
include('vendor1');
include('vendor2');
// Local includes.
include('includes/include1.js');
include('includes/include2.js');
// Some code here.
})();
我希望gulp 处理此源文件并创建一个最终分发文件(捆绑包),以确保所有依赖项(包含)都合并到一个文件中。所以我可以在我的 HTML 中包含 foo.js 并且所有依赖项都可以使用。
我希望有一个清晰而健壮的系统来管理项目内部的所有依赖项并构建分发文件。
- 我怎样才能做到这一点?
- 我自己的脚本应该使用什么格式(AMD、CommonJS、其他)?
- 如何在源包文件中指定依赖项?
- 如何构建分发?
【问题讨论】:
-
对 2020 年问题的补充附录:现在原生 Chrome 支持 ES6 模块怎么样?火狐/边缘呢? Chrome 或 Firefox 插件/注入脚本呢?如果我们只针对最新版本的 Chrome 和同时支持旧版浏览器,我们的需求会发生变化吗?
标签: javascript amd commonjs gulp browserify