Gruntjs 任务执行者(吞咽、咕噜等)和捆绑者(网页包、浏览)。为什么要一起使用?

Gruntjs 任务执行者(吞咽、咕噜等)和捆绑者(网页包、浏览)。为什么要一起使用?,gruntjs,gulp,bundler,browserify,webpack,Gruntjs,Gulp,Bundler,Browserify,Webpack,我对task runner和bundler的世界有点陌生,在经历类似的事情时 咕噜声、咕噜声、网页包、浏览 ,我觉得他们之间没有太大的区别。换句话说,我觉得Webpack可以完成任务执行者所做的一切。但我还是得到了一个巨大的例子,其中gulp和webpack一起使用。我想不出原因 作为一个新手,我可能会走错方向。如果你能指出我遗漏了什么,那就太好了。欢迎任何有用的链接 提前感谢。并且实际上是任务运行者,它们有不同之处,比如配置驱动的任务和基于流的转换。每种方法都有自己的优缺点,但归根结底,它们可

我对task runner和bundler的世界有点陌生,在经历类似的事情时

咕噜声、咕噜声、网页包、浏览

,我觉得他们之间没有太大的区别。换句话说,我觉得Webpack可以完成任务执行者所做的一切。但我还是得到了一个巨大的例子,其中gulp和webpack一起使用。我想不出原因

作为一个新手,我可能会走错方向。如果你能指出我遗漏了什么,那就太好了。欢迎任何有用的链接

提前感谢。

并且实际上是任务运行者,它们有不同之处,比如配置驱动的任务和基于流的转换。每种方法都有自己的优缺点,但归根结底,它们可以帮助您创建可以运行以解决更大构建问题的任务。大多数情况下,它们与应用程序的实际运行时间无关,而是转换或放置文件、配置和其他东西,以便运行时间按预期工作。有时,它们甚至会产生运行应用程序所需的服务器或其他进程

还有打包机。基本上,它们被设计为运行一个包的所有依赖项,并将它们的源连接到一个(理想情况下)可以在浏览器中使用的文件中。它们对于现代web开发非常重要,因为我们使用了很多设计用于运行和编译器的库。同样,有些开发人员喜欢其中一个或另一个(或者有时两者都喜欢!)也有其利弊和不同的原因。通常,这些解决方案的输出捆绑包包含某种引导机制,以帮助您在潜在的巨大捆绑包中找到正确的文件或模块

运行程序和绑定程序之间模糊的界限可能是绑定程序也可以进行复杂的转换或在运行时进行转换,因此它们可以做任务运行程序可以做的几件事情。事实上,在browserify和webpack之间,您可以使用大约一百个来修改源代码。相比之下,目前至少有2000个gulp插件被列出。因此,您可以看到,对于什么最适合您的应用程序,有明确的(希望是…;)定义

也就是说,您可能会看到一个复杂的项目实际上同时或同时使用任务运行程序和包绑定器。例如,在我的办公室,我们使用gulp启动项目,而webpack实际上是从一个特定的gulp任务运行的,该任务创建了在浏览器中运行应用程序所需的源捆绑包。因为我们的应用程序是,我们也需要代码


依我拙见,您可能想熟悉所有这些技术,因为在您的职业生涯中,您很可能会看到(使用)所有这些技术。

我刚刚创建了自己的任务运行程序/捆绑程序

它比吞咽和可能的webpack更简单(尽管我从未使用过webpack)

它非常简单,有巴别塔、布劳塞里菲、丑陋、迷你和开箱即用的把手

语法如下所示:

const秋=require(“秋精灵”);
const w=新秋天();
//----------------------------------------
//CSS
//----------------------------------------
变量cssFiles=[
“./lib/pluginABC/src/css/***.{css,scss}”,
];
w、 forEach(cssFiles,srcPath=>{
var dstPath=w.replace('/src/','/dist/',srcPath);
dstPath=w.replace('.scss',.css',dstPath);
dstPath=w.replace('.css','.min.css',dstPath);
w、 缩小(srcPath、dstPath、{
sourceMap:useSourceMap,
});
});
//----------------------------------------
//捆绑JS模块
//----------------------------------------
var srcPath=“./lib/pluginABC/src/main.js”;
var dstPath=“./lib/pluginABC/dist/bundled.min.js”;
w、 捆绑(srcPath、dstPath、{
调试:使用SourceMap,
});
//----------------------------------------
//创建把手模板
//----------------------------------------
变量tplpath=[
“/lib/pluginABC/src/templates/***.hbs”,
];
dstPath=“./lib/pluginABC/dist/templates/bundled.js”;
w、 预编译(tplpath、dstPath);
文件在这里:


希望能有所帮助。

这是我读过的最好的答案之一,也是我一直在寻找的答案。谢谢也许可以写一篇博文?在这里你可以得到很好的解释-凌:我一直使用类和“导入”。您的项目是否传输导入的文件?