2016-12-18 16 views
0

Я пытаюсь добавить стороннее расширение, доступное только через CDN. Как я могу добавить их в проект Aurelia-CLI и/или Aurelia WebPack?Как добавить CDN с Aurelia-CLI и RequireJS

Библиотека, что я использую DataTables, и я получил его работы с Aurelia-CLI путем изменения файла aurelia.json путем добавления этого:

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

Тогда в моей ViewModel

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

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

Но проблема теперь я сталкиваюсь с добавлением расширения для стилизации (DataTables Bootstrap 4 theme).

Я попытался добавить CDN внутри 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> 

Я также попытался добавить его в файл конфигурации aurelia.json путем добавления CDN внутри paths, а затем использовать его в deps, но это не похоже на работу либо.

"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" 
    ] 
}, 

Любые предложения?

EDIT

Я только что нашел этот Aurelia-CLIissue #313, который, вероятно, связано и может означать, что в настоящее время нет способов импорта CDN.

ответ

2

Поскольку пучки не получают лениво загружаемых и все в одном и том же комплекте, в любом случае вы можете просто добавить скрипт CDN в свой файл index.html для достижения того же. Или вы можете вставить скрипт на страницу, где вам это нужно, на основе потребности (вид фальшивки ленивой загрузки).

+0

Спасибо Dwayne, я думал, что это невозможно, но, возможно, я не пробовал это правильно. Однако, делая это, разве это не происходит в глобальной переменной? Нет никакого способа сделать, как «import», добавив их в 'index.html', это правильно? – ghiscoding