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, время: 14:54. |