gpt4 book ai didi

javascript - 如何在 Gulp 中使用 Browserify lib 为模块起别名?

转载 作者:IT老高 更新时间:2023-10-28 23:25:24 25 4
gpt4 key购买 nike

Browserify 自述文件描述了创建外部需求,如下所示:
$ browserify -r 通过 -r duplexer -r ./my-file.js:my-module > bundle.js

然后在你的页面中你可以这样做:

<script src="bundle.js"></script>
<script>
var through = require('through');
var duplexer = require('duplexer');
var myModule = require('my-module');
/* ... */
</script>

如果你想使用命令行,这很有效,但我想在 gulpfile 中使用 Browserify。但似乎没有办法在示例中为像 ./myfile-js:my-module 这样的模块添加名称。如果有它的选项,我还没有找到它。以他们描述的方式要求我的模块的唯一方法是执行 require(3) 因为 Browserify 似乎为模块提供了数字,但这些数字会发生变化,显然这是不可取的。

编辑:我目前的解决方案是这样做:

var shell = require('gulp-shell');

gulp.task('browserify', shell.task([
'browserify -r ./src/bundle.js:bundle > ./build/bundle.js'
]))

如果我想充分利用 Gulp 管道,这是一种解决方法,并不是最佳选择。我想知道如何在没有命令行的情况下完成此操作,或者如果没有,为什么这只能通过 CLI 完成?

最佳答案

b.require()带有 expose 选项。

function bundle () {
browserify()
.require("./myfile-js", {expose: "my-module"})
.require("through")
.require("duplexer")
.bundle()
/* ... */
}

gulp.task("browserify", bundle);

Browserify-Gulp 集成

其他答案表明 vinyl-source-stream 是这里的要求,但这不一定是真的。您还没有说明如何集成 Browserify 和 Gulp。你只需要 vinyl-source-stream 如果你实际上是在 Browserify 和 Gulp 之间进行一些集成,而不仅仅是将 Browserify 捆绑操作包装在 Gulp 任务中(人们通常会这样做),比如运行 Gulp捆绑输出上的插件。例如,您可以这样做:

var fs = require("fs");

gulp.task("browserify", function () {
return browserify(/* ... */)
/* ... */
.bundle()
// But if you're doing something with Gulp here you should use
// `vinyl-source-stream` and pipe to `gulp.dest()`.
.pipe(fs.createWriteStream("./bundle.js", "utf8"));
});

关于javascript - 如何在 Gulp 中使用 Browserify lib 为模块起别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36613871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com