在Angular 5中,如何在没有@Types的情况下导入NPM模块



我正在尝试Angular 5,从Angular-CLI启动一个项目。在这个项目中,我想使用NPM模块:J2M(https://github.com/kylefarris/j2m(,所以我在线查看并看到了这两个命令:

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

不幸的是, @type/j2m根本不存在。因此,我试图找到一种定义自己的打字的方法,但没有成功...

我正在使用此代码:

import * as J2M from "j2m";
...
console.log(J2M.toM(value));

,但根据我在网上找到的样本...

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

谢谢,

您需要将脚本添加到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在哪里获取库。

相关内容

最新更新