1

我正在尝试将 camanjs 与 angular 6 一起使用。当 npm 上没有类型时,如何添加 js lib 并将其与 angular 一起使用。我遵循许多步骤

  • 使用 npm 安装 caman

  • 使用节点模块中的路径将其作为脚本添加到 angular.json

  • 将其导入到组件中,例如

import * as Caman from '节点模块中 caman 的路径'

  • 在 AfterViewInit 我像使用它一样
  ngAfterViewInit() {
       Caman('#image-id', function () {
            this.brightness(10);
            this.contrast(20);
          });
     }

但是当启动服务器时我得到这个错误

在此处输入图像描述

代码链接:https ://stackblitz.com/edit/angular-d5g941

4

2 回答 2

1

.angular-cli.jsonscripts数组中,添加路径caman

"scripts": [
    "../node_modules/path-to-caman"
],

如果是 Angular 6 inangular.jsonscripts数组,请将路径添加到caman

"scripts": [
    "node_modules/path-to-caman"
],

然后,在您的组件中,只需声明一个如下命名的变量Caman

declare var Caman: any;

不需要

import * as Caman from 'path-to-caman'

因为你的编译器会抛出一个错误,指出:

找不到模块“caman”。

.angular-cli只需将脚本添加到/中的脚本数组angular.json(在 Angular 6 的情况下)即可将其添加到全局范围,您就可以从组件中访问它。

另外,请确保在ngAfterViewInit生命周期钩子方法中调用它的任何函数,因为它试图通过 id 访问 DOM 元素。

于 2018-09-10T08:08:34.587 回答
0
  • 首先做我如何在Angular中使用foxTooltip?

  • 然后将 caman 文件夹下 nodemodules_ 中的 Caman.pack.js 添加到 assets 中

  • 确保您在组件开头声明的 var 与包“Caman”中的名称相同,区分大小写
于 2018-09-09T09:07:29.647 回答