如何使用Gulp.js在单个JS文件中组合多个CommonJS模块?

时间:2019-08-08 15:49:41

标签: javascript gulp commonjs gulp-4

我已经使用Gulp.js进行了各种不同的实现,其中一些只是简单地压缩单个JavaScript源文件,其中一些是压缩和复制多个文件,而另一些则是围绕使用browserify并将相互依赖的多个文件合并为一个缩小的文件(可以选择在两者之间使用Babel进行转译等)。

但是最近,我遇到了一个独特的场景(对我而言),我从未在其任何实现中都涉及到:将多个CommonJS模块文件串联成一个缩小的构建文件。

考虑以下示例:

有一个名为common.js的通用文件,其内容如下-

module.exports.add = (a, b) => a + b;
module.exports.subtract = (a, b) => a - b;
module.exports.foo = ...

然后还有另一个(例如index.js)使用此文件公开的功能之一-

const common = require('./common');

const sum = common.add(1, 2);

console.log(`The sum is ${sum}.`);

当我提供index.js作为条目时,是否有办法将两个文件串联起来?如果是用于ES6模块甚至是AMD,我可能已经使用过browserify。并不是我还没有尝试过,但是将它用于永远不会在浏览器中运行的东西听起来很奇怪。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

经过四处查看,发现没有人谈论过做这样的事情(据我所知),我得出结论,根本不需要将模块串联起来。

串联将不会有任何目的(与在网络上不同),并且一个或多个目标文件将驻留在同一本地目录中。我试图解决的问题根本就不存在。因此,我决定为每个源文件维护一个目标文件。