我正在使用一个node.js / express项目,我正在使用typescript。我没有任何问题导入东西,但我必须使用以下格式,这是丑陋/不可扩展
import MyModule = require("../../ModuleFolder/MyModule");
假设我的模块看起来像这样
export module MyModule
{
export function doStuff():void
{
//do stuff here
}
}
我无法弄清楚如何在不指定路径的情况下引入模块和类。理想情况下,我希望能够像
一样进行此操作import MyModule = require("MyModule");
我能做些什么来使这成为可能或改进这种实现?
更新:最终我最终使用了这个模块,效果非常好。
答案 0 :(得分:2)
执行此操作的最佳方法是制作NPM模块(它们可以是私有的,只是不要npm publish
)并将它们放入您自己的node_modules
文件夹中。自using require()
automatically looks for these folders以来,您可以通过这种方式利用这一点......
模块:
./node_modules/MyModule/index.ts
export module MyModule
{
export function doStuff():void
{
//do stuff here
}
}
您可以在npm init
文件夹中运行./node_modules/MyModule
来创建package.json
文件。
主文件:./src/some/other/folder/or/elsewhere/main.ts
import MyModule = require('MyModule');
答案 1 :(得分:1)
如果您在
中指定了一个脚本var Name = require ('name')
比nodeJS自动查找node_modules以获取目录' name'和里面的模块定义。如果您的模块位于其他位置,则需要指定路径。
或者,在node_modules
中创建指向模块目录的符号链接。