2016-12-18 59 views
0

我想添加僅通過​​可用的第三方擴展。我如何將它們添加到Aurelia-CLI和/或Aurelia WebPack項目中?如何使用Aurelia-CLI和RequireJS添加CDN

,我使用該庫是DataTables,我得到了它Aurelia-CLI加入該工作通過修改aurelia.json文件:在我的ViewModel

{ 
    "name": "datatables", 
    "path": "../node_modules/datatables/media", 
    "main": "js/jquery.dataTables", 
    "deps": ["jquery"], 
    "exports": "$", 
    "resources": [ 
    "css/jquery.dataTables.css" 
    ] 
}, 

然後

import $ from 'jquery'; 
import dataTable from 'datatables'; 

export class DataTableViewModel { 
    activate() { 
     //bind your data here 
    } 
    attached() { 
     $('#example').DataTable(); 
    } 
} 

但問題我現在面臨的是添加樣式擴展(DataTables Bootstrap 4 theme)。

我試着在index.html裏面加入​​,即使這個沒有給出任何錯誤,它似乎也不起作用。

<body aurelia-app="main"> 
    <script src="scripts/vendor-bundle.js" data-main="aurelia-bootstrapper"></script> 
    <script type="text/javascript" language="javascript" src="https://cdn.datatables.net/1.10.13/js/dataTables.bootstrap4.min.js"> 
    </script> 
</body> 

我也試圖通過增加​​的paths內,然後用它在deps但似乎沒有任何工作增加它的aurelia.json配置文件中。

"paths": { 
    "root": "src", 
    "resources": "src/resources", 
    "elements": "src/resources/elements", 
    "attributes": "src/resources/attributes", 
    "valueConverters": "src/resources/value-converters", 
    "bindingBehaviors": "src/resources/binding-behaviors", 
    "dataTablesBootstrap4": ["//cdn.datatables.net/1.10.13/js/dataTables.bootstrap4.min.js"] 
    }, 
... 
{ 
    "name": "datatables", 
    "path": "../node_modules/datatables/media", 
    "main": "js/jquery.dataTables", 
    "deps": ["jquery", "dataTablesBootstrap4"], 
    "exports": "$", 
    "resources": [ 
    "css/jquery.dataTables.css" 
    ] 
}, 

有什麼建議嗎?

編輯

我剛剛發現這個Aurelia-CLIissue #313這可能是相關的,可能意味着目前還沒有進口​​的方式。

回答

2

由於bundle不會被延遲加載,並且無論如何都被集成到同一個bundle中,所以您可以將CDN腳本添加到index.html文件中以實現同樣的目的。或者,您可以根據需要將腳本插入到您需要的頁面中(假裝延遲加載)。

+0

謝謝德韋恩,我認爲這是不可能的,但也許我沒有正確地嘗試它。但是通過這樣做,這不是全局變量嗎?通過在'index.html'中添加'import',沒有辦法做到這一點,這是正確的嗎? – ghiscoding