我正在尝试使用esbuild来捆绑和压缩npm项目中的文件。它会最小化我传入的每个文件,但它不是捆绑的。它给我的错误是当有多个文件时,我必须使用'outdir‘。但是,这会返回文件夹中所有这些最小化的文件。这不是我想要的行为,也不是捆绑的。我只想让它把所有这些文件合并成一个文件。
let {build} = require("esbuild");
let files = ["file1.js", "file2.js"];
build({
entryPoints: files,
outdir: "./views/dashboardPage/bundle",
minify: true,
bundle: true
}).catch(() => process.exit(1));我将bundle设置为true,但它仍然要求我使用outdir,它只是将这些文件返回给我,最小化。他们基本上没有关于这方面的文档,关于它的每一篇在线帖子都只是从GitHub复制/粘贴自述文件。我怎样才能把它捆绑起来?
发布于 2020-07-26 06:44:35
每个入口点文件都将成为一个单独的包。每个包都包括入口点文件及其导入的所有文件。传递两个入口点将创建两个单独的包。捆绑过程与文件连接不是一回事。
如果希望将所有文件放在单个包中,则可以从单个文件中引用所有文件,并将该文件用作入口点:
import "./file1.js"
import "./file2.js"使用esbuild执行此操作可能如下所示:
let {build} = require("esbuild");
let files = ["./file1.js", "./file2.js"];
build({
stdin: { contents: files.map(f => `import "${f}"`).join('\n') },
outfile: "./views/dashboardPage/bundle.js",
minify: true,
bundle: true
}).catch(() => process.exit(1));发布于 2021-06-11 09:38:22
您可以使用inject选项(https://esbuild.github.io/api/#inject),例如,
const options = {
entryPoints: ['index.js'],
inject: ['file1.js', ..., 'fileN.js'],
bundle: true,
minify: true,
sourcemap: true,
outdir: path,
};
esbuild.buildSync(options);https://stackoverflow.com/questions/63086520
复制相似问题