我正在尝试在浏览器中使用 Browerifiy,如果我使用独立选项,它会公开一个模块。我不想这样做。
在实际编译代码后,网站和文档似乎在我查看的所有地方都被切断了。
没有人说如何实际使用浏览器属性中的代码。
我有一个这样的艰巨任务:
browserify: {
standalone: {
src: [ '<%= yeoman.server %>/shared-components/**/*.js' ],
dest: '<%= yeoman.client %>/app/js/browserifed-shared-code.js',
/* Commented out, zero documentation on this. Can only expose one module it seems.
options: {
browserifyOptions: {
standalone: 'Utility' //Unable to say '**/*' error :-/
}
}
*/
},
这似乎有效,它生成一个如下文件:
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
var UrlController = function(){};
UrlController.test = function () {
return 'test';
};
module.exports = UrlController;
},{}],2:[function(require,module,exports){
'use strict';
var Utility = function(){};
Utility.isASCII = function (str) {
return /^[\x00-\xFF]*$/.test(str);
};
Utility.isAlphaNumeric = function(str) {
var code, i, len;
for (i = 0, len = str.length; i < len; i++) {
code = str.charCodeAt(i);
if (!(code > 47 && code < 58) && // numeric (0-9)
!(code > 64 && code < 91) && // upper alpha (A-Z)
!(code > 96 && code < 123)) { // lower alpha (a-z)
return false;
}
}
return true;
};
module.exports = Utility;
},{}]},{},[1,2]);
我使用注入器自动包含它,其工作原理类似于:
<script src="app/js/browserifed-shared-code.js"></script>
现在我希望我能够打电话
require('Utility');
但我得到
Uncaught ReferenceError: require is not defined(…)
我不知道/无法在浏览器中加载这些模块。 :'-/