2016-05-21 5 views
0

В нашей среде настроен частный репозиторий git и настроен jspm для установки пакетов из этого репозитория. Репо имеет файлы .js, .html и .css. Jspm выводит все файлы в папку с приложением @master к имени, чтобы отразить ветвь, и сохраняет все это в предварительно настроенном jspm_packages месте на моей машине. Он также добавляет второй файл @ master.js рядом с папкой с внутренними выражениями экспорта (я сам не создавал этот файл).Проблемы с загрузкой Aurelia Element

Эти файлы представляют собой пользовательские элементы, которые я хочу использовать в приложении aurelia. Для viewmodel и .html для представления (и файла .css) существует .js. Когда я иду использовать пользовательский элемент, я получаю файл 404, файл не найден, потому что system.js ищет файл @ master.html, которого не существует.

Jspm, кажется, ссылается на файл @ master.js в config.js и как-то это предполагает файл @ master.html в Aurelia? Только файл @ master.js был создан, когда я установил пакет с помощью jspm. Исходный .html-файл существует и живет внутри папки, о которой я упоминал выше, но этот файл @ master.html не работает, и я не уверен, 1), для чего этот файл будет нужен, и 2) почему он ссылается. В моем коде нет ссылки на @ master.html.

Я даже не уверен, что это проблема JSPM, проблема Aurelia, проблема System.js или их комбинация?

У кого-либо есть аналогичный опыт с этими технологиями?

Спасибо, Крис

+0

Так от того, что мало я собрал до сих пор JSPM является версионности в файл .js, но не .html или. css-файлы при установке пакета, и я не уверен, почему и как это должно быть. Но Aurelia ищет подходящее имя, и его нет. – Fratt

ответ

0

По существу, Аурелия считает, что вы импортируете ваш репозиторий в качестве пользовательского элемента, поэтому, когда вы импортируете @ master.js он ищет соответствия «вид», что она предполагает, является viewmodel.

Похоже, вам необходимо структурировать ваш репозиторий в качестве плагина. Добавьте файл index.js на верхнем уровне и сделайте ответственным за запуск функции configure, которая должна сделать компоненты, которые вам нужны, глобальными ресурсами. Убедитесь, что ваш package.json указывает на ваш index.js в качестве «основного». После этого вам нужно будет добавить .plugin ('your-package-name') в файл main.js, как и любой другой плагин.

Пример index.js это примерно так:

import {Options, GLOBAL_OPTIONS, DIRECTION} from './options'; 
import {Dragula} from './dragula'; 
import {moveBefore} from './move-before'; 

export {Dragula, Options, DIRECTION, moveBefore}; 

export function configure(config, callback) { 
    let defaults = new Options(); 
    config.container.registerInstance(GLOBAL_OPTIONS, defaults); 

    if (callback !== undefined && typeof callback === 'function') { 
    callback(defaults); 
    } 

    config.globalResources(['./dragula-and-drop']); 
} 

(взято из here)

+0

Спасибо, Майкл. Я проверю это еще немного. Спасибо за руководство о том, что может произойти – Fratt