如何将本地 JavaScript 文件导入 NodeJS TypeScript 项目?
How to import local JavaScript file into NodeJS TypeScript project?
NodeJS 中的现有项目,我正在用 TypeScript 编写项目的单个新部分(在本例中是我的 CLI)。
我的文件夹看起来像这样:
|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library
在 cli.ts
中,我不知道如何包含 old-lib.js
。我熟悉在导入 Node 模块(驻留在 node_modules
中)时使用环境 *.d.ts
文件。当我尝试包含本地 JavaScript 文件时出现问题。
方法一
第一种方法满足 TypeScript 编译器的要求,但让 Node 不满意:
/// <reference path="modules.d.ts" />
import oldLib = require('old-lib');
由于模块名称开头缺少 ./
,NodeJS 在 node_modules
中查找包。
Error: Cannot find module 'old-lib'
方法二
使用 NodeJS require 语法。这与 modules.d.ts
文件中的条目不匹配:
import oldLib = require('./old-lib');
... error TS2307: Cannot find module './old-lib'.
必须有一种方法可以增量地包含遗留 JavaScript 文件,而无需将它们重命名为 TS 文件并解决错误(即,仅以与节点模块相同的方式描述接口)。
如果我需要添加更多详细信息,请告诉我,谢谢。
error TS2307: Cannot find module './old-lib'.
重新组织您的项目,以便您拥有:
|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library
|_ old-lib.d.ts << Existing large library
并将如下内容放入这个新的 old-lib.d.ts
文件中:
export var foo:number;
export var bar:string;
NodeJS 中的现有项目,我正在用 TypeScript 编写项目的单个新部分(在本例中是我的 CLI)。
我的文件夹看起来像这样:
|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library
在 cli.ts
中,我不知道如何包含 old-lib.js
。我熟悉在导入 Node 模块(驻留在 node_modules
中)时使用环境 *.d.ts
文件。当我尝试包含本地 JavaScript 文件时出现问题。
方法一
第一种方法满足 TypeScript 编译器的要求,但让 Node 不满意:
/// <reference path="modules.d.ts" />
import oldLib = require('old-lib');
由于模块名称开头缺少 ./
,NodeJS 在 node_modules
中查找包。
Error: Cannot find module 'old-lib'
方法二
使用 NodeJS require 语法。这与 modules.d.ts
文件中的条目不匹配:
import oldLib = require('./old-lib');
... error TS2307: Cannot find module './old-lib'.
必须有一种方法可以增量地包含遗留 JavaScript 文件,而无需将它们重命名为 TS 文件并解决错误(即,仅以与节点模块相同的方式描述接口)。
如果我需要添加更多详细信息,请告诉我,谢谢。
error TS2307: Cannot find module './old-lib'.
重新组织您的项目,以便您拥有:
|_ cli.ts << New file that describes new functionality
|_ old-lib.js << Existing large library
|_ old-lib.d.ts << Existing large library
并将如下内容放入这个新的 old-lib.d.ts
文件中:
export var foo:number;
export var bar:string;