Я нашел простой способ включить используемый код плагина, встроенный в библиотеку преобразования babel-plugin-transform-html-import-to-string.
Шаг 1
Импорт Babel в документ.
Шаг 2
Затем я взялкод и удалил файл библиотеки и добавил строковое значение для кода, html. Этот код из этой библиотеки .
function endsWith(str, search) {
return str.indexOf(search, str.length - search.length) !== -1;
}
// transform `import template from 'file.html';` to a variable `var template = '<div></div>'`;
function babelPluginImportHtmlToString(o) {
var t = o.types;
return {
visitor: {
ImportDeclaration: {
exit: function (path, state) {
const node = path.node;
if (endsWith(node.source.value, '.html')) {
const html = require(node.source.value);
path.replaceWith(t.variableDeclaration("var", [
t.variableDeclarator(
t.identifier(node.specifiers[0].local.name),
t.stringLiteral(html))]));
}
}
}
}
};
}
Шаг 3
Затем я зарегистрировал функцию как плагин Babel. И затем вызвал процесс преобразования, который использует плагин.
var plugins = [];
plugins.push('babelPluginImportHtmlToString');
babel.registerPlugin('babelPluginImportHtmlToString', babelPluginImportHtmlToString);
// TODO I'm not showing the babel import statement, include a reference to babel...
var code = babel.transform(code, {
filename: filename,
plugins: plugins,
presets: presets
}).code;
Пример
Я добавил поддержку для него в скрипке Сенча здесь. Посмотрите пример здесь: https://fiddle.sencha.com/#view/editor&fiddle/30vv. Если вы проверяете devtools, он будет в require.js.