Как использовать Handlebars.js в Angular 6+ CLI? - PullRequest
2 голосов
/ 22 марта 2019

Я хотел бы сделать простое письмо клиента в формате обычного текста или в формате HTML, чтобы клиент мог продолжить редактирование в TextArea или редакторе HTML. Я подумываю об использовании Handlebars.js для рендеринга HTML-шаблона с метками усов вместе с объектом JSON, содержащим различную бизнес-информацию.

Я сделал:

import * as Handlebars from 'handlebars';

...
            const template = Handlebars.compile(this.exampleHtmlTemplate);
            this.note = template({ title: 'My title', body: 'My body' });

При компиляции с Angular Cli, я получил следующую ошибку:

chunk {vendor} vendor.js, vendor.js.map (vendor) 7.84 MB [initial] [rendered]

WARNING in ./node_modules/handlebars/lib/index.js 22:38-56
require.extensions is not supported by webpack. Use a loader instead.

WARNING in ./node_modules/handlebars/lib/index.js 23:2-20
require.extensions is not supported by webpack. Use a loader instead.

WARNING in ./node_modules/handlebars/lib/index.js 24:2-20
require.extensions is not supported by webpack. Use a loader instead.

ERROR in ./node_modules/handlebars/lib/index.js
Module not found: Error: Can't resolve 'fs' in 'C:\...\NGSource\node_modules\handlebars\lib'

Я использую Angular 7.2.6 и Angular CLI 7.3.3. Как заставить Handlebars.js работать с Angular2 +? Или можно использовать какой-нибудь низкоуровневый API-интерфейс Angular для рендеринга / компиляции шаблона с усами вместе с данными JSON в стандартную строку HTML / Text?

1 Ответ

0 голосов
/ 19 июля 2019

Вы можете попробовать использовать другой импорт:

import * as Handlebars from 'handlebars/dist/cjs/handlebars';
...