Интеграция Salvattore в мое приложение Aurelia - PullRequest
1 голос
/ 31 мая 2019

Я пытался интегрировать Salvattore (альтернатива масонства в CSS) в мое приложение Aurelia , но, к сожалению, оно не работает.После многих испытаний я разочарован и думаю, что возможно, что Salvattore вообще не может работать в приложении Aurelia.

Вот что я сделал: я создал новый проект Aurelia благодаря CLIau new и внутри этого проекта я создал html-страницу внутри моего проекта Aurelia с этим кодом:

<div id="grid" data-columns>
    <div>Item #1</div>
    <div>Item #2</div>
    <div>Item #3</div>
    <div>Item #4</div>
</div>

С этим css:

#grid[data-columns]::before {
    content: '3 .column.size-1of3'; 
}

/* These are the classes that are going to be applied: */
.column { float: left; }
.size-1of3 { width: 33.333%; }

Сначала я попытался просто сослатьсяJS-код Сальватторе внутри моей страницы index.html (чуть выше тега закрытия тела) выглядит так:

<!DOCTYPE html>
<html>
  <head>
    <title>Aurelia</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, height=device-height />
  </head>

  <body aurelia-app="main">
    <script src="scripts/vendor-bundle.js" data-main="aurelia-bootstrapper"></script>
    <script src="javascript/salvattore.min.js"></script>
  </body>
</html>

Не работает, я получил ошибки в консоли.

enter image description here

Я также пытался установить Salvattore через npm, установить salvattore --save и добавить его в aurelia.json.В main.ts я пытался сослаться на него: import 'salvattore';, но он тоже не работает.Я имею в виду, никаких ошибок на этот раз, но ничего не произошло.Наконец, в конце я попытался внедрить js-скрипт Salvattore прямо в мою страницу благодаря компоненту scriptinjector .Еще раз, это не работает, ничего не произошло.

Должен ли я сделать вывод, что Salvattore просто не совместим с какими-либо проектами Aurelia?В таком случае, знаете ли вы какую-либо альтернативу?

Ниже примера кода с помощью Salvattore на базовой html-странице (не Aurelia)

https://codepen.io/mitour/pen/wWMOvw

Ответы [ 2 ]

4 голосов
/ 06 июня 2019

Вы должны понимать, что cli bundler - это AMD AMD.Ваш <script src="javascript/salvattore.min.js"></script> ниже vendor-bundle, поэтому загрузчик AMD (requirejs / systemjs) уже установлен, когда браузер читает salvattore.min.js.Вот почему salvattore пытается загрузить себя в качестве модуля AMD вместо создания глобальной переменной.

Вы можете переместить salvattore.min.js выше vendor-bundle тега script.Или используя prepend в aurelia.json, добавьте salvattore перед requirejs в списке prepend.

Другая вещь, которую вы можете попробовать, - использовать ее как модуль.Не добавляйте тег сценария в html, не добавляйте его в начале.Но добавьте эту строку в ваш main.js или main.ts.

import "salvattore"; // this will load it as an AMD module
0 голосов
/ 12 июня 2019

Вот решение:

  • В package.json add "salvattore": "^1.0.9"
  • In aurelia.json add "salvattore"

На вашей странице машинописи (.ts):

 import * as salvattore from 'salvattore';

 export class MyPage {
     attached() {
         salvattore.init();
     } 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...