Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.10.2015, 18:41
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

SystemJS/builder "Unable to calculate canonical name to bundle"
Создал вопрос на гитхабе, но уже два дня не отвеают.
https://github.com/systemjs/builder/issues/334
Дерьмовый саппорт, откровенно говоря. Но я не об этом.

Использую плагин text для SystemJS.

import gTemplate from '../templates/g.html!text'


Работает отлично, но приложение не хочет компилиться.

[Error: Unable to calculate canonical name to bundle file:///home/finom/.../templates/g.html]

Текст плагина (это официальный плагин от SystemJS)

/*
  Text plugin
*/
exports.translate = function(load) {
  return 'module.exports = "' + load.source
    .replace(/(["\\])/g, '\\$1')
    .replace(/[\f]/g, "\\f")
    .replace(/[\b]/g, "\\b")
    .replace(/[\n]/g, "\\n")
    .replace(/[\t]/g, "\\t")
    .replace(/[\r]/g, "\\r")
    .replace(/[\u2028]/g, "\\u2028")
    .replace(/[\u2029]/g, "\\u2029")
  + '";';
}



Кусок используемого gulpfile:
gulp.task('build', function(cb) {
	var path = require("path");
	var Builder = require('systemjs-builder');
	var builder = new Builder();

	builder.loadConfig('src/config.js').then(function() {
		builder.buildStatic('app.js', 'dist/js/app.js')
			.then(function() {
				console.log('Build complete');
				cb();
			})
			.catch(function(err) {
				console.log('Build error');
				console.log(err);
				cb();
			});
	}).catch(function(e) {
		console.error(e);
	})
});
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #2 (permalink)  
Старый 02.10.2015, 19:49
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Поковырялся в сорцах и решил проблему, перенеся папку с шаблонами в рут basePath. Билд проходит без ошибок. проблема в том, что HTML файл не попадает в скомпиленный JS файл. Прийдется юзать аякс, к сожалению.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #3 (permalink)  
Старый 07.10.2015, 17:51
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Задолбало. Пока работал с SystemJS, отрепортил несколько ошибок.

Последняя из них: если в .js файле есть анонимное объявление AMD модуля, при этом там же объявляется еще и именованный модуль (например, если библиотека содержит несколько модулей для внутреннего или публичного использования), билдер включает этот файл в бандл, но игнорирует все модули:

"Uncaught Module 2 not present."


define(function() {
  return 'foo';
});

define('bar', function() {
  return 'bar';
});

define('baz', function() {
  return 'baz';
});


Ну баг себе и баг, версия ведь нулевая. Только проблема в том, что автор такую логику считает фичей, а не багом, несмотря на то, что этот способ описания модулей прекрасно работает в RequireJS и optimizer. Он предложил использовать другую библиотеку, в которой нет такого определения модулей. П..ц.
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #4 (permalink)  
Старый 07.10.2015, 22:34
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Нашел еще один баг... В общем, крепко подумайте, юзать ли SystemJS Builder. А свои задачи я с горем пополам решил. [Кланяюсь]
__________________
"Matreshka is fucking awesome" © чувак с Reddit
Matreshka.js - Три возможности
Ответить с цитированием
  #5 (permalink)  
Старый 07.10.2015, 22:41
Профессор
Отправить личное сообщение для ТОТ_САМЫЙ Посмотреть профиль Найти все сообщения от ТОТ_САМЫЙ
 
Регистрация: 10.09.2015
Сообщений: 184

Сообщение от FINoM
[Кланяюсь]
всегда обращайся бро, форум всегда подскажет
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск