2016-11-29 48 views
0

的角度CLI文檔狀態:角CLI的包括外部腳本彷彿窗口

一些JavaScript庫需要被添加到全球範圍內,並加載 ,好像他們是在腳本標籤。我們可以使用angular-cli.json的 應用[0] .scripts和apps [0] .styles屬性來執行此操作。

但我已經試過,包括第三方腳本應該添加一個變量Tour到窗口:

"scripts": [ 
    // jQuery, bootstrap, etc... 
    "../node_modules/bootstrap-tour/build/js/bootstrap-tour.min.js" 

當從窗口訪問Tour,我得到Tourundefined

如果我在腳本標記中包含完全相同的腳本,Tour就在窗口上。我不在乎這種情況下的類型(這個庫沒有)。我錯過了一步嗎?

我使用的解決方法是將靜態JS文件放在資產文件夾 - 問題是我必須把他們所有的依賴關係放在資產文件夾中,但我希望它們捆綁在一起,如果可能的話。

編輯:我訪問Tour的方式是通過開發者控制檯 - 它應該在窗口上(當靜態包含時)。在TypeScript中,我使用declare const Tour,它在靜態包含時也可以工作。

+0

請添加如何訪問'Tour'變量以及發生錯誤的代碼。 –

+0

@AlexanderCiessielski從開發者控制檯訪問遊覽,因爲它應該在窗口上。如果它在打字稿中,我會做一個'聲明const Tour'。 –

回答

0

我解決了這個問題,通過在index.ts中調用require來獲取包含在angular-cli.json之後的文件。

angular-cli.json

"scripts": [ 
    ... 
    "../node_modules/moment/moment.js", 
    "../node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js" 
    ] 

index.ts

declare const require; 
require('moment/moment.js'); 
require('eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min.js'); 
export * from './environment'; 
export * from './app.component'; 
export * from './app.module'; 

如果有人知道一個更合適的方法,讓我知道!