如何从npmjs导入模块作为Typescript而不是Javascript而不是使用require [Ionic]

时间:2018-03-18 11:34:22

标签: javascript angular typescript ionic-framework

正如我所提到的,我想导入一个模块,但我不理解该文档。 我正在使用Ionic开发应用程序。 我安装模块:

  

npm install wordnet

而不是使用..

var wordnet = require('wordnet');

wordnet.lookup('define', function(err, definitions) {

  definitions.forEach(function(definition) {
    console.log('  words: %s', words.trim());
    console.log('  %s', definition.glossary);
  });
});

如何使用Typescript文件中的模块使用它的函数..作为

import { wordnet } from 'wordnet'

我是否需要在app.module.ts或页面中导入模块.module.ts或其他东西......?

1 个答案:

答案 0 :(得分:0)

这取决于您的设置。如果您正在使用AngularCLI,那么它应该自动找到TypeScript / JavaScript代码。检查node-modules目录以确保代码存在。如果在安装时未添加--save-dev标志:

npm install --save-dev wordnet

如果此库依赖于二进制资产或CSS文件,则可能必须编辑angular-cli.json文件以告知它在何处查找图像或CSS文件。以下是我在Learn With书中进行的AngularCLI转换的片段,其中显示了我如何设置资源和CSS。

  "apps": [
    {
      "assets": [
        "img",
        {
          "glob": "**/*",
          "input": "../node_modules/@swimlane/ngx-datatable/release/assets/fonts",
          "output": "./fonts"
        }
      ],
      "styles": [
        "styles.css",
        "../node_modules/bootstrap/dist/css/bootstrap.css",
        "../node_modules/@swimlane/ngx-datatable/release/assets/icons.css",
        "../node_modules/@swimlane/ngx-datatable/release/themes/material.css"
      ],
    }
  ],

如果您正在使用SystemJS加载模块,那么您必须在SystemJS配置中设置wordnet。通常是这样的:

(function (global) {
    System.config({
        map: {
            'wordnet': 'path/to/wordnet/code'
        },
    });
})(this);