繁体   English   中英

使用没有路径的 require() 函数

[英]Use require() function without path

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

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

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

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

我不知道如何在不指定路径的情况下引入模块和类。 理想情况下,我希望能够像这样

import MyModule = require("MyModule");

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

更新:最终我为此使用了模块,效果很好。

最好的方法是制作 NPM 模块(它们可以是私有的,只是不要npm publish它们)并将它们放入您自己的node_modules文件夹中。 由于使用require()会自动查找这些文件夹,因此您可以通过以下方式将其用于您的身边...

模块:./node_modules/MyModule/ ./node_modules/MyModule/index.ts

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

您可以在该./node_modules/MyModule文件夹中运行npm init来创建package.json文件。

主文件:./src/some/other/folder/or/elsewhere/ ./src/some/other/folder/or/elsewhere/main.ts

import MyModule = require('MyModule');

如果您在

var Name = require ('name')

比 nodeJS 自动查找 node_modules 中的目录“名称”和里面的模块定义。 如果您在其他地方有您的模块,那么您需要指定路径。 或者在node_modules中创建指向您的模块目录的符号链接。

不建议直接在 node_modules 中创建自定义本地模块,因为 node_modules 不应该被编辑,并且在项目重新安装期间可以删除其中的所有内容。 相反,创建一个本地模块并将其包含在 package.json 中,就像任何其他库依赖项一样。

在项目根文件夹中,使用以下内容在 MyModule/index.ts 中创建一个文件夹和文件。

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

cd 进入 MyModule 文件夹,运行 npm init 命令,当出现提示时,只需按 Enter。

npm init

cd 回到项目根文件夹,并运行此命令将本地模块添加到 package.json 文件中。

npm install --save MyModule

用这个在项目的任何地方导入模块。

import MyModule = require('MyModule');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM