Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法调用模块';browserify后的s函数_Javascript_Browserify_Require - Fatal编程技术网

Javascript 无法调用模块';browserify后的s函数

Javascript 无法调用模块';browserify后的s函数,javascript,browserify,require,Javascript,Browserify,Require,我正在尝试用JS模块创建一个简单的页面,它将对页面做一些事情。我需要使用node.js的模块,所以我正在学习如何浏览作品 我的HTML: 你好,世界 var测试=要求(“./test.js”); test.init(); 这是我的JavaScript(test.js): “严格使用”; 警惕(“此处1”); var init=函数(){ 警惕(“此处2”); } exports.init=init 我正在与以下人员进行捆绑: browserify.cmd test.js -o bundle

我正在尝试用JS模块创建一个简单的页面,它将对页面做一些事情。我需要使用node.js的模块,所以我正在学习如何浏览作品

我的HTML:


你好,世界

var测试=要求(“./test.js”); test.init();
这是我的JavaScript(test.js):

“严格使用”;
警惕(“此处1”);
var init=函数(){
警惕(“此处2”);
}
exports.init=init
我正在与以下人员进行捆绑:

browserify.cmd test.js -o bundle.js
当我试图打开页面时,它显示“here1”,但不显示“here2”。 在浏览器的控制台中,我看到:

Uncaught ReferenceError: require is not defined      index.html:9

如何使模块的函数(init)正常工作,您有什么想法吗?

您需要将所有包含节点中任何内容的JavaScript代码放入
test.js
文件中,然后使用browserify将其转换为te
bundle.js
。在您的示例中,您使用的是
index.html
中的节点函数
require
,该函数不会被转换。然后浏览器会看到他不知道的函数
require()
,这就是隐藏问题的地方

简单地说:所有javascript代码(包含节点)必须作为单个
bundle.js
包含在
index.html
中,这是源文件的浏览结果

编辑

Browserify(默认情况下)不允许从browserified代码中调用任何browserified函数。但是,您可以通过将函数附加到
窗口
范围中使其可用

这是
test.js
(然后由browserify转换为
bundle.js
)和
index.html
“严格使用”;
警惕(“此处1”);
window.init=函数(){
警惕(“此处2”);
}

你好,世界

init();
因为require不是本地js函数,所以应该在test.js中使用它,因为browserify就是用它来捆绑模块的。但是我如何从html/embedded js访问test.js中定义的函数呢?主要问题是我不明白如何访问test.js中定义的函数(当它被browserify时)来自html/embedded js.Aha!在最初的问题中,从嵌入代码调用它的必要性并不明确。我编辑了答案,它可以通过将你的函数附加到窗口范围来实现。