我正在寻找在 AMD 编译的 TypeScript 类中使用 __dirname(或等效项)的解决方案,__dirname 不存在。而且因为它是打字稿,我不能(或者我不知道如何)导入module
contains uri
,让我得到 uri。
我找到了一次解决方案,但我不记得怎么找到了,到目前为止我也找不到了。
我看了一下这个,但它是纯 javascript 并且我使用打字稿,我试图导入模块,但我得到一个 TS 错误。
我正在寻找在 AMD 编译的 TypeScript 类中使用 __dirname(或等效项)的解决方案,__dirname 不存在。而且因为它是打字稿,我不能(或者我不知道如何)导入module
contains uri
,让我得到 uri。
我找到了一次解决方案,但我不记得怎么找到了,到目前为止我也找不到了。
我看了一下这个,但它是纯 javascript 并且我使用打字稿,我试图导入模块,但我得到一个 TS 错误。
一种解决方案是:
在 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>)
(Url
在 URL 中,而上面的变量uri
在 中URI
),但它似乎没有module.uri
这个任务有用。一方面,您必须在调用中包含模块的名称。
module.uri
可能包含..
,因此需要清理。我了解您的代码在服务器端运行,因此在 Node.js 中我们会调用path.dirname(path.normalize(module.uri))
.