@RokeAlvo

Как компилировать pug для использования на клиенте?

в среде node.js (из доков pug):
//main.js

const pug = require('pug')

console.log(pug.renderFile('template.pug', {
  name: 'Timothy'
}));


при запуске в node все отлично, но как только я пытаюсь сделать что-то похожее на клиенте все валится...
Uncaught Error: Cannot find module 'fs'
    at newRequire (main.js:37)
    at localRequire (main.js:53)
    at Object.parcelRequire.../node_modules/pug/lib/index.js (main.js:132)
    at newRequire (main.js:47)
    at localRequire (main.js:53)
    at Object.parcelRequire.main.js.pug (main.js:593)
    at newRequire (main.js:47)
    at main.js:81
    at main.js:120


в принципе ожидаемо, у нас нет доступа к файловой системе...
попробуем собрать с parcel:

‼  Could not load existing sourcemap of "../node_modules/uglify-js/tools/node.js".
×  C:\Users\RokeAlvo\Desktop\js\project\vipeco\frontend\test-pg\node_modules\uglify-js\tools\node.js:169:27: Unterminated string constant (169:27)
  167 |     }
  168 | 
> 169 |     var mappingUrlPrefix = "\n
      |                           ^
  170 |     if (options.sourceMapInline) {
  171 |         stream += mappingUrlPrefix + "data:application/json;charset=utf-8;base64," + new Buffer(source_map).toString("base64");
  172 |     } else if (options.outSourceMap && typeof options.outSourceMap === "string" && options.sourceMapUrl !== false) {


подскажите, куда копать...
ну или на крайний случай, какой шаблонизатор можно использовать без фреймворка?

конечно и так, в принципе не плохо:
return `
        <div class="item">
          <div class="top">
              <div class="name">${name}</div>
              ${ratingBlockTemplate(rating)}
              <div class="date">${date}</div>
          </div>
          ${textBlockTemplate(textBlock)}
      </div>

  `


но хотелось бы что нибудь на подобии jsx в react или pug в vue
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы