gpt4 book ai didi

javascript - Node js 需要代码而不是文件

转载 作者:行者123 更新时间:2023-12-03 05:20:25 27 4
gpt4 key购买 nike

我正在尝试设置一个界面,我可以在其中编写一个可在服务器(nodejs)和客户端(javascript)上使用的js文件。

一个示例文件是一个 Vector 对象,我想在客户端和服务器上使用它,因为我正在创建多人游戏。

在node.js中,我知道你可以使用以下语法来请求源文件...

var Vector = require('./vector');

然后您可以通过输入 Vector 来访问其 module.exports

这里的问题是,对于服务器,我需要在文件末尾添加一些额外的代码...

module.exports = Vector;

...这对客户端来说不是必需的。

是否可能需要源代码,如下所示?

var data = (...) // get data from vector.js file
var Vector = require_code(data + 'module.exports = Vector');

如果没有,可能还有另一种方法来完成我想要完成的任务。

这可能听起来有点令人困惑,但非常感谢您的帮助!

提前致谢,

大卫。

最佳答案

听起来您正在寻找 UMDs - 通用模块定义。

(function (root, factory) {
if (typeof define === "function" && define.amd) {
define(["jquery", "underscore"], factory);
} else if (typeof exports === "object") {
module.exports = factory(require("jquery"), require("underscore"));
} else {
root.Requester = factory(root.$, root._);
}
}(this, function ($, _) {
// this is where I defined my module implementation

var Requester = { // ... };

return Requester;
}));

您需要将 root.Requestor 中的名称更改为模块的名称。 root 获取 this 的值,该值将是全局对象或您通常在浏览器上称为 window 的对象。

此特定示例查找 jQueryunderscore 作为示例依赖项,但如果您需要,它们很容易分解。

关于javascript - Node js 需要代码而不是文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41412388/

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