Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用不带路径的require()函数_Javascript_Node.js_Typescript - Fatal编程技术网

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

Javascript 使用不带路径的require()函数,javascript,node.js,typescript,Javascript,Node.js,Typescript,我正在处理一个node.js/express项目,我正在其中使用typescript。我在导入东西时没有任何问题,但我必须使用以下难看/不可扩展的格式 import MyModule = require("../../ModuleFolder/MyModule"); 假设我的模块是这样的 export module MyModule { export function doStuff():void { //do stuff here } } 我不知道如

我正在处理一个node.js/express项目,我正在其中使用typescript。我在导入东西时没有任何问题,但我必须使用以下难看/不可扩展的格式

import MyModule = require("../../ModuleFolder/MyModule");
假设我的模块是这样的

export module MyModule
{
    export function doStuff():void
    {
        //do stuff here
    }
}
我不知道如何在没有指定路径的情况下拉入模块和类。理想情况下,我希望能够像这样把它拉进来

import MyModule = require("MyModule");
我可以做些什么来实现这一点或改进这一实现吗


更新:最终,我使用了模块来实现这一点,效果非常好

如果在中指定脚本

var Name = require ('name')
然后nodeJS会自动在node_模块中查找目录“name”和其中的模块定义。如果您的模块位于其他位置,则需要指定路径。
或者在
node\u modules
中创建指向您的模块目录的符号链接。

最好的方法是创建NPM模块(它们可以是私有的,只是不要
NPM发布它们),并将它们放入您自己的
node\u modules
文件夹中。因为,你可以通过这样的方式来利用这一点

模块:
/node\u modules/MyModule/index.ts

export module MyModule
{
    export function doStuff():void
    {
        //do stuff here
    }
}
import MyModule = require('MyModule');
您可以在
/node\u modules/MyModule
文件夹中运行
npm init
,以创建
package.json
文件

主文件:
/src/some/other/folder/或/where/main.ts

export module MyModule
{
    export function doStuff():void
    {
        //do stuff here
    }
}
import MyModule = require('MyModule');

有符号链接的有趣想法,我不会想到。如果我理解这个index.ts,它会有导入吗?或者我必须在那里实施?因为您的演示似乎是向后的。@ed209
index.ts
将是您的包的主文件,并且如果不是所有的逻辑,也会包含一些。是的,它可以有导入,实际上你可以把任何你通常放在模块里的东西都放进去。它可以命名为
abcmainfile.ts
,只要在
package.json
中命名即可。