在用 Typescript AMD 编译的类中使用__dirname



我正在寻找一种解决方案,以便在用AMD编译的TypeScript类中使用__dirname(或等效物),__dirname那里不存在。而且因为它是打字稿,所以我不能(或者我不知道如何)导入包含urimodule,允许我获取 uri。

我曾经找到过解决方案,但我不记得如何,到目前为止我再也找不到了。

我看了一下这个,但它是纯 javascript 并且我使用打字稿,我尝试导入模块,但我收到 TS 错误。

https://stackoverflow.com/questions/9027429/how-to-use-nodejs-global-module-objects-in-requirejs-modules

一种解决方案是:

在 app.js 中,创建一个全局变量:

__basePath = __dirname;

然后,在 AMD 脚本中,使用__basepath + 'relativePathFromBasePath'加载文件。

我知道我找到了另一种解决方案,但我不记得如何。

我不使用 TypeScript,但根据我所看到的 TypeScript 代码和我对 RequireJS 的了解,我相信你应该能够像这样访问module.uri

import module = require("module");
console.log(module.uri);

module这个名字很特别。您也可以使用require.toUrl(<module name>)(这UrlURL 中,而上面的变量uriURI中),但它似乎不如module.uri此任务有用。首先,您必须在调用中包含模块的名称。

module.uri可能包含..,所以需要清理。我知道您的代码在服务器端运行,因此在 Node 中.js我们称之为path.dirname(path.normalize(module.uri)).

相关内容

  • 没有找到相关文章

最新更新