2016-06-14 7 views
1

Итак, у меня есть настройка aurelia с использованием jspm. У меня есть установки Bootstrap-так:JSPM/Aurelia/Bootstrap 4 не может найти jQuery

jspm install npm:[email protected]

Тогда в main.js я сделал:

import 'jquery'; 
import 'bootstrap'; 

export function configure(aurelia) { 
    aurelia.use 
    .standardConfiguration() 
    .developmentLogging(); 

    //Uncomment the line below to enable animation. 
    //aurelia.use.plugin('aurelia-animator-css'); 
    //if the css animator is enabled, add swap-order="after" to all router-view elements 

    //Anyone wanting to use HTMLImports to load views, will need to install the following plugin. 
    //aurelia.use.plugin('aurelia-html-import-template-loader') 

    aurelia.start().then(() => aurelia.setRoot()); 
} 

Я даже попытался import $ from 'jquery' но когда я раскручиваю Aurelia скелет с BS4 я получаю:

Uncaught Error: Bootstrap's JavaScript requires jQuery 

Я могу пойти на консоль и сделать $, и он возвращает материал jquery. Я думаю, что это состояние гонки, но не уверен, как исправить?

EDIT: System.config

System.config({ 
    defaultJSExtensions: true, 
    transpiler: "none", 
    paths: { 
    "*": "dist/*", 
    "github:*": "jspm_packages/github/*", 
    "npm:*": "jspm_packages/npm/*" 
    }, 
    meta: { 
    "bootstrap": { 
     "deps": [ 
     "jquery" 
     ] 
    } 
    }, 
    map: { 
+0

показать строки вашего config.js, которые содержат что-то связанное с "bootstrap" –

ответ

3

Использование jspm install bootstrap=github:twbs/[email protected]

Есть проблемы с установкой bootstrap с jspm из npm: (see here).

См. this file о том, как его импортировать (от this project).

Update: here is the Pull Request that should fix this.

+0

Я пробовал его через github install. По-прежнему возникают те же проблемы. Я заметил, что у них в пакетах была карта jQuery. Поэтому я попробовал это также «карта»: { «jquery»: «npm: [email protected]», '. К сожалению, до сих пор не хватает jQuery. Мой главный js просто имеет 'import 'bootstrap';' – allencoded

+1

Я также попробовал 'import bootstrap from 'bootstrap';' Я также добавил переопределения в соответствии с вашими и уничтожил папку jspm_packages и сделал новую установку jspm. – allencoded

+3

. делая ваши шаги и понижая до jQuery 2.2.4. – allencoded

2

Я столкнулся с этой проблемой в последнее время, а также. Попробуйте установить jquery 2 вместо jquery 3. Очевидно, что jquery 3 не зависает от окна, когда он импортируется в качестве модуля так же, как и в jquery 2. Bootstrap 4, по-видимому, не запрашивает его как зависимость ,

+0

Я просто попытался вернуться к jquery 2.2.0, все еще не работал. – allencoded

0

Одно из возможных решений для загрузки JQuery из CDN в головной части вашего index.html:

<script src="https://code.jquery.com/jquery-3.0.0.min.js" integrity="sha256-JmvOoLtYsmqlsWxa7mDSLMwa6dZ9rrIdtrrVYRnDRH0=" crossorigin="anonymous"></script> 

Взятые из https://code.jquery.com. Используйте другую версию jQuery, если вам нужно. На самом деле это лучшая стратегия развертывания IMHO, потому что вы получите больше параллельных загрузок (лучший параллелизм) в браузере, загрузив библиотеки из CDN.

+0

, во-первых, Aurelia настаивает на тестировании e2e, поэтому необходимость уходить и захватывать библиотеку с сетью каждый раз - это плохая практика, когда проблема должна быть решена с помощью jspm. Во-вторых, Аурелия сильно подталкивает электронные приложения; так что вы действительно хотите, чтобы конечный пользователь постоянно подключался к сети? Тем не менее, это может быть полезно в качестве временного решения на данный момент. –

+0

@MeirionHughes хорошая точка в отношении Electron, но эти приложения ведут себя по-разному по умолчанию и потребуют разных решений по всем направлениям. Но я не верю, что тесты на e2e будут отрицательно влиять на использование CDN.Это лучшее решение во время выполнения для веб-приложения (лучше, чем связывание jQuery) из-за его способности одновременно загружаться вместе со сценариями из других доменов. –