在一个打字稿项目中加载一个npm模块

时间:2015-07-16 09:10:28

标签: javascript node.js typescript

我正在一个项目中工作,我需要加载一个不在打字稿中的模块。在名为<select id="attributes" data-bind="value: value, valueAllowUnset: true,foreach:groupedAttributes" class="form-control"> <optgroup data-bind="attr : { label: name },foreach:things" label="default"> <option data-bind="text:name,value: $data"></option> </optgroup> </select> <div data-bind="text: ko.toJSON(value)"></div> 的文件夹中,我在文件夹typings中拥有所有的打字稿模块,我有javascript版本。问题是,当我尝试导入该模块时,找不到它。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

typings中,您没有在打字稿中实现模块,而是javascript模块的类型定义(可能在node_modules中)。有关详细信息,请参阅definitelytyped.org/

您可以使用

安装mudule的类型定义
$ tsd query PACKAGE_NAME -a install --save

使用此命令将更新tsd.json文件,当您执行tsd reinstall时,将再次安装该软件包。如果其他人正在开展该项目,这也很不错。他们可以使用tsd reinstall安装所有类型定义(只要tsd.json在您的存储库中)。

.ts文件中,您可以使用

导入javascript模块
import MODULE = require ('MODULE');

并使用

加载类型定义
/// <reference path="../../../typings/MODULE/MODULE.d.ts" />

当然,你必须调整路径和名称。 如果您没有类型定义,则可以使用

加载javascript模块
declare var require: any;
var MODULE = require('MODULE');

答案 1 :(得分:0)

tsd install node

其次是

var theJsModule = require('the-js-module');

使用--module commonjs

进行编译