使用不带路径的require()函数

时间:2014-10-05 18:55:38

标签: javascript node.js typescript

我正在使用一个node.js / express项目,我正在使用typescript。我没有任何问题导入东西,但我必须使用以下格式,这是丑陋/不可扩展

import MyModule = require("../../ModuleFolder/MyModule");

假设我的模块看起来像这样

export module MyModule
{
    export function doStuff():void
    {
        //do stuff here
    }
}

我无法弄清楚如何在不指定路径的情况下引入模块和类。理想情况下,我希望能够像

一样进行此操作
import MyModule = require("MyModule");

我能做些什么来使这成为可能或改进这种实现?

更新:最终我最终使用了这个模块,效果非常好。

2 个答案:

答案 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中创建指向模块目录的符号链接。