gpt4 book ai didi

javascript - 从 Node 中的外部 .js 文件调用构造函数

转载 作者:行者123 更新时间:2023-12-05 07:36:35 25 4
gpt4 key购买 nike

我实际上有一个加载几个 js 文件的 html 文件:

<script type="text/javascript" src="jop.js"></script>
<script type="text/javascript" src="script.js"></script>

我的目标是将这两个脚本迁移到 node.js 以独立运行它们(无需浏览器)。

关于js文件:

-jop.js : 使用emscripten工具编译,包含一个构造函数。

-script.js : 是程序本身

jop.js 文件内容(起始行):

var PROPModule = function(Module) {
Module = Module || {};

var Module;if(!Module)Module=(typeof PROPModule!=="undefined"?PROPModule:null)||{};var moduleOverrides={};// file continues....

script.js 文件内容(原始开始行):

var PROP = {};                          // PROP global object 
PROP['preRun'] = prerun; // Will be called before PROP runs, but after the Emscripten runtime has initialized
PROP['onRuntimeInitialized'] = main; // Called when the Emscripten runtime has initialized
PROP['TOTAL_MEMORY'] = 64*1024*1024; // PROP Heap defaults
PROPModule(PROP); // Calling the constructor function with our object

我尝试使用“require”在 script.js 中调用构造函数“PROPModule(PROP);”,但这些方法均无效。这样:

script.js(在 node.Beggining 行中修改):

var jopjs = require('./jop.js');
var PROP = {};
PROP['preRun'] = prerun;
PROP['onRuntimeInitialized'] = main;
PROP['TOTAL_MEMORY'] = 64*1024*1024;
jopjs.PROPModule(PROP);

ReferenceError: jopjs is not defined

我对 js 和 node 很陌生,我一直在寻找几天没有成功的解决方案。

有什么建议或想法如何调用这个构造函数吗?

最佳答案

.js 文件在浏览器和 nodejs 中的读取方式不同。因此,很可能您的 .js(为浏览器编码)不会在 nodejs 环境中读取,反之亦然。

为了使我的 js 文件与两者兼容,我所做的是用这个脚本包装我的 js 代码:

/** jop.js */
; (function (window, factory) {
if (typeof exports === 'object') {
module.exports = factory(); // NodeJs Environment
} else {
window.jop = factory(); // Browser Environment
}
}(this, function () {
return (function (window) {
"use string";

let PROPModule = function (Module) {
console.log('PROPModule is called');
}

// exposed functions
return { myFunc };
}(this));

}));

虽然这是在 NodeJS 环境中导入它的方式:

script.js

const jopjs = require('./jop')

虽然这是在浏览器环境中导入它的方式(在内部或 ):

<script type="text/javascript" src="./app/lokidb-seed.js"></script>
<script>
console.log('The "jop" word in window.jop = factory();: ', jop.PROPModule());
</script>

关于javascript - 从 Node 中的外部 .js 文件调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49138847/

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