Browserify 在浏览器中捆绑导出

Browserify bundle in browser with exports

如何在浏览器中访问 Browserify 包的导出?示例:

// parser.js
exports.parse = parse;

那我运行宁

browserify lib/parser.js -o www/bundle.js

我找到的每个 tutorial/readme 都以 Drop a single <script> tag into your html and you're done!

结尾
<script src="bundle.js"></script>

但是我如何运行 parse?函数 require 未在浏览器中定义。

var Parser = require('parser');
Parser.parse('hit kommer vi aldrig');
> Uncaught ReferenceError: require is not defined

Browserify 为您的所有代码提供一个单独的范围,以防止全局变量污染。您应该使您的解析器全局化以便在浏览器中访问它。

将此放入您的 parser.js:

global.parse = parse;

我找到了 requirejs 的方法。我使用下面的代码代替 <script src="bundle.js"></script>

requirejs(['bundle'], function(Parser) {
    Parser.parseText('text');
    // This is also where you would put angular.bootstrap()
});