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);
})
});
|
Поковырялся в сорцах и решил проблему, перенеся папку с шаблонами в рут basePath. Билд проходит без ошибок. проблема в том, что HTML файл не попадает в скомпиленный JS файл. Прийдется юзать аякс, к сожалению.
|
Задолбало. Пока работал с SystemJS, отрепортил несколько ошибок.
Последняя из них: если в .js файле есть анонимное объявление AMD модуля, при этом там же объявляется еще и именованный модуль (например, если библиотека содержит несколько модулей для внутреннего или публичного использования), билдер включает этот файл в бандл, но игнорирует все модули: "Uncaught Module 2 not present."
define(function() {
return 'foo';
});
define('bar', function() {
return 'bar';
});
define('baz', function() {
return 'baz';
});
Ну баг себе и баг, версия ведь нулевая. Только проблема в том, что автор такую логику считает фичей, а не багом, несмотря на то, что этот способ описания модулей прекрасно работает в RequireJS и optimizer. Он предложил использовать другую библиотеку, в которой нет такого определения модулей. П..ц. |
Нашел еще один баг... В общем, крепко подумайте, юзать ли SystemJS Builder. А свои задачи я с горем пополам решил. [Кланяюсь]
|
Цитата:
|
| Часовой пояс GMT +3, время: 06:50. |