我正在尝试Angular 5,从angular-cli开始一个项目。在这个项目中,我想使用一个NPM模块:J2M(https://github.com/kylefarris/J2M),因此我在线查看了以下两个命令:

npm install j2m --save
npm install @types/j2m --save-dev

不幸的是,@ types/j2m根本不存在。
所以我试图找到一种定义自己的类型的方法,但是没有成功...

我正在使用此代码:
import * as J2M from "j2m";
...
console.log(J2M.toM(value));

但是根据我在网上找到的样本,“j2m”无法识别,或者“toM”不是函数。

那么,导入此模块的正确方法是什么?

谢谢,

最佳答案

您需要将脚本添加到angular-cli.json文件中。

scripts属性下,添加

'../node_modules/path/to/minified/js.js'

如果需要样式,则还必须将其添加到styles属性下的同一文件中。

完成此操作后,您的库将被导入。这意味着您不需要使用诸如
import * from 'j2m';

但是,如果您想使用全局变量而不会导致IDE抛出错误,那么您应该添加
declare var J2M: any;
J2M是库中导出的全局函数(例如,对于MomentJS,此变量称为moment)。

使用定义文件时,它只是告诉CLI自动获取JS库,并为您提供IDE自动补全功能。使用此解决方案,您无需自动完成,并且可以明确告诉CLI从何处获取库。

10-06 02:59