如果您使用 grunt-typescript,那么我有一个拉取请求,它至少为我解决了这个问题。见https://github.com/k-maru/grunt-typescript/pull/36
从拉取请求 README
使用 node_modules 中的模块(即 npm)
使用 npm 包的标准方法是提供一个定义文件,该文件将包指定到打字稿并从那里导入模块。
///<reference path="path/to/mod.d.ts" />
import mod = module('mod')
typescript编译器会将 转换import
为 nodejs require
。
var mod = require('mod')
这非常笨拙,因为您需要知道 npm 安装包的精确路径,并且当您处理多个级别的依赖项时,npm 可以将包置于几乎任何级别。
使用node_modules
grunt 配置中的选项,您可以只
import
使用 npm 包,而无需知道 npm 安装包的确切级别,只要它是在本地而不是全局安装的。
到import
你的打字稿源中的一个 npm 模块做
import npmModule = module('node_modules/npmModule/foo')
这主要是由于幸运的机会。Typescript 编译器将读取 typescript 定义文件node_modules/npmModule/foo.d.ts
,如果它在通往根的途中的某个时间点存在,并且如果需要,生成的 javascript 文件将包含一个require
for 。npmModule/foo