2016-09-21 85 views
0

我有一个Angular 2项目使用模块(外部的),并且想使用一个使用命名空间的库(automapper-ts)。混合模块和命名空间

我该如何包含或导入它?我看过关于模块和命名空间的文档。但是,我不清楚如何使用仅在使用模块的项目中使用名称空间的库。

回答

1

如果某个库不会将任何内容导出到UMD,AMD或CommonJS格式,那么您只需加载它(例如使用<script>标记)或从加载器/打包程序中加载它。命名空间将以旧式的方式提供:来自全局变量。

为了编译你的代码,根据你的配置,你必须让编译器找到你的库的声明文件。 This one, I guess

0

虽然该库并未被设计为模块化库,但使用Angular 2+工作库并不是很难。我之前在包的GitHub页面上创建了关于此问题的回答之前已回答了此问题:https://github.com/loedeman/AutoMapper/issues/17

为了清晰(和索引),这是我提出的解决方案:

我只是采用了棱角分明CI创造了基本的角度应用。如果按照使用第三方库(https://github.com/angular/angular-cli#3rd-party-library-installation)的指导原则,使AutoMapper正常运行非常容易。摘录:

  1. 安装automapper-TS库使用NPM:
    npm install automapper --save
  2. 以下行添加到该文件typings.d.ts:
    declare module 'automapper-ts';
  3. 添加automapper-TS缩小的JS文件添加到angular-cli.json中的脚本数组中:
    "../node_modules/automapper-ts/dist/automapper.min.js"
  4. 将在步骤2中创建的模块导入到模块/组件文件中:
    import { } from 'automapper-ts';

现在您应该可以使用automapper全局变量了。

Ragarding打字:我发现AutoMapper的package.json在package.json中缺少typings属性。它会在那里很快(会为这个职位后立即确认提交),但在此期间,你可以自己添加,只是下面的主要特性:

"typings": "./dist/automapper",

+1

某些格式(报价,列表和代码降价)在这里真的有帮助。 – isherwood