Rav*_*ine 9 javascript commonjs node.js browserify gulp
Browserify自述文件描述了创建外部需求,如下所示:
$ browserify -r through -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>
Run Code Online (Sandbox Code Playgroud)
如果你想使用命令行,这是有效的,但我想在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'
]))
Run Code Online (Sandbox Code Playgroud)
如果我想充分利用Gulp管道,这是一种解决方法,并不是最佳选择.我想知道如何在没有命令行的情况下完成这项工作,或者如果没有,为什么这只能通过CLI完成?
b.require()有expose选项.
function bundle () {
browserify()
.require("./myfile-js", {expose: "my-module"})
.require("through")
.require("duplexer")
.bundle()
/* ... */
}
gulp.task("browserify", bundle);
Run Code Online (Sandbox Code Playgroud)
其他答案表明这vinyl-source-stream是一个要求,但这不一定是真的.您还没有说明如何整合Browserify和Gulp.你只需要vinyl-source-stream实际在Browserify和Gulp之间进行一些集成,而不仅仅是在一个Gulp任务中包含一个Browserify捆绑操作(人们通常会这样做),就像在捆绑输出上运行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"));
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2463 次 |
| 最近记录: |