2016-09-21 106 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