11ty / eleventy-plugin-bundle

Little bundles of code, little bundles of joy.
70 stars 3 forks source link

Issue with `css` paired shortcode and the Render plugin #14

Closed nhoizey closed 1 year ago

nhoizey commented 1 year ago

I'm currently trying to add support for Sass in my eleventy-plugin-pack11ty plugin, but getting an error I can't explain:

Error log (full path redacted) ```shell Eleventy:TemplateContent Having trouble rendering njk template ./src/pages/offline/index.njk: '\n' + Eleventy:TemplateContent "

These pages are in your local browser cache so you can browse and read them even when you're offline.

\n" + Eleventy:TemplateContent '\n' + Eleventy:TemplateContent '\n' + Eleventy:TemplateContent '{%- css "cached" %}{% renderFile "src/assets/sass/06_components/cached.scss" %}{% endcss %}\n' + Eleventy:TemplateContent '
    \n' + Eleventy:TemplateContent '\n' + Eleventy:TemplateContent '\n' + Eleventy:TemplateContent '\n' + Eleventy:TemplateContent '{% js "cached-content" %}{% renderFile "src/assets/js/cached-content.js" %}{% endjs %}\n' +836ms [11ty] Problem writing Eleventy templates: [11ty] 1. Having trouble rendering njk template ./src/pages/offline/index.njk (via TemplateContentRenderError) Eleventy:EleventyErrorHandler (error stack): TemplateContentRenderError: Having trouble rendering njk template ./src/pages/offline/index.njk Eleventy:EleventyErrorHandler at Template._render (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/TemplateContent.js:531:15) Eleventy:EleventyErrorHandler at processTicksAndRejections (node:internal/process/task_queues:96:5) Eleventy:EleventyErrorHandler at async Template.renderWithoutLayout (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Template.js:456:27) Eleventy:EleventyErrorHandler at async TemplateMap.populateContentDataInMap (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/TemplateMap.js:589:39) Eleventy:EleventyErrorHandler at async TemplateMap.cache (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/TemplateMap.js:483:5) Eleventy:EleventyErrorHandler at async TemplateWriter._createTemplateMap (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/TemplateWriter.js:330:5) Eleventy:EleventyErrorHandler at async TemplateWriter.generateTemplates (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/TemplateWriter.js:360:5) Eleventy:EleventyErrorHandler at async TemplateWriter.write (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/TemplateWriter.js:407:23) Eleventy:EleventyErrorHandler at async Eleventy.executeBuild (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Eleventy.js:1191:13) +0ms [11ty] 2. (./src/pages/offline/index.njk) [11ty] EleventyShortcodeError: Error with Nunjucks paired shortcode `css` (via Template render error) Eleventy:EleventyErrorHandler (error stack): Template render error: (./src/pages/offline/index.njk) Eleventy:EleventyErrorHandler EleventyShortcodeError: Error with Nunjucks paired shortcode `css`>>>>>11ty>>>>>{"message":"Error with Nunjucks shortcode `renderFile`>>>>>11ty>>>>>{\"message\":\"Cannot read properties of undefined (reading 'includes')\",\"stack\":\"TypeError: Cannot read properties of undefined (reading 'includes')\\n at new TemplateRender (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/TemplateRender.js:29:73)\\n at Object.compileFile (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:66:12)\\n at Object._renderFileShortcodeFn (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:310:32)\\n at Object. (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/BenchmarkGroup.js:32:26)\\n at ShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:200:14)\\n at eval (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :14:51)\\n at PairedShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:251:9)\\n at Template.root [as rootRenderFunc] (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :12:31)\\n at Template.render (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:454:10)\\n at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:411:14\"}<<<<<11ty<<<<<","stack":"EleventyShortcodeError: Error with Nunjucks shortcode `renderFile`>>>>>11ty>>>>>{\"message\":\"Cannot read properties of undefined (reading 'includes')\",\"stack\":\"TypeError: Cannot read properties of undefined (reading 'includes')\\n at new TemplateRender (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/TemplateRender.js:29:73)\\n at Object.compileFile (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:66:12)\\n at Object._renderFileShortcodeFn (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:310:32)\\n at Object. (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/BenchmarkGroup.js:32:26)\\n at ShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:200:14)\\n at eval (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :14:51)\\n at PairedShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:251:9)\\n at Template.root [as rootRenderFunc] (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :12:31)\\n at Template.render (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:454:10)\\n at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:411:14\"}<<<<<11ty<<<<<\n at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:206:17\n at processTicksAndRejections (node:internal/process/task_queues:96:5)"}<<<<<11ty<<<<< Eleventy:EleventyErrorHandler at Object._prettifyError (/full…path…/pack11ty/node_modules/nunjucks/src/lib.js:32:11) Eleventy:EleventyErrorHandler at /full…path…/pack11ty/node_modules/nunjucks/src/environment.js:464:19 Eleventy:EleventyErrorHandler at eval (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :22:11) Eleventy:EleventyErrorHandler at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:253:13 Eleventy:EleventyErrorHandler at eval (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :15:11) Eleventy:EleventyErrorHandler at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:205:15 Eleventy:EleventyErrorHandler at processTicksAndRejections (node:internal/process/task_queues:96:5) +0ms [11ty] 3. Error with Nunjucks shortcode `renderFile` (via Template render error) Eleventy:EleventyErrorHandler (error stack): EleventyShortcodeError: Error with Nunjucks shortcode `renderFile`>>>>>11ty>>>>>{"message":"Cannot read properties of undefined (reading 'includes')","stack":"TypeError: Cannot read properties of undefined (reading 'includes')\n at new TemplateRender (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/TemplateRender.js:29:73)\n at Object.compileFile (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:66:12)\n at Object._renderFileShortcodeFn (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:310:32)\n at Object. (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/BenchmarkGroup.js:32:26)\n at ShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:200:14)\n at eval (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :14:51)\n at PairedShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:251:9)\n at Template.root [as rootRenderFunc] (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :12:31)\n at Template.render (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:454:10)\n at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:411:14"}<<<<<11ty<<<<< Eleventy:EleventyErrorHandler at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:206:17 Eleventy:EleventyErrorHandler at processTicksAndRejections (node:internal/process/task_queues:96:5) +1ms [11ty] 4. Cannot read properties of undefined (reading 'includes') (via Template render error) Eleventy:EleventyErrorHandler (error stack): TypeError: Cannot read properties of undefined (reading 'includes') Eleventy:EleventyErrorHandler at new TemplateRender (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/TemplateRender.js:29:73) Eleventy:EleventyErrorHandler at Object.compileFile (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:66:12) Eleventy:EleventyErrorHandler at Object._renderFileShortcodeFn (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/Plugins/RenderPlugin.js:310:32) Eleventy:EleventyErrorHandler at Object. (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/BenchmarkGroup.js:32:26) Eleventy:EleventyErrorHandler at ShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:200:14) Eleventy:EleventyErrorHandler at eval (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :14:51) Eleventy:EleventyErrorHandler at PairedShortcodeFunction.run (/full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:251:9) Eleventy:EleventyErrorHandler at Template.root [as rootRenderFunc] (eval at _compile (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:527:18), :12:31) Eleventy:EleventyErrorHandler at Template.render (/full…path…/pack11ty/node_modules/nunjucks/src/environment.js:454:10) Eleventy:EleventyErrorHandler at /full…path…/pack11ty/node_modules/@11ty/eleventy/src/Engines/Nunjucks.js:411:14 +0ms ```

    It looks like the issue is TypeError: Cannot read properties of undefined (reading 'includes')\\n at new TemplateRender (/full…path…/eleventy-plugin-pack11ty/node_modules/@11ty/eleventy/src/TemplateRender.js:29:73 -> https://github.com/11ty/eleventy/blob/master/src/TemplateRender.js#L30

    this.includesDir = TemplatePath.join(this.inputDir, this.config.dir.includes);

    So it looks like this.config.dir.includes is undefined here.

    Any idea how I can track where the contain should come from, and doesn't?

    I unfortunately couldn't find a way to build a reduced test case yet, will try again ASAP.

    nhoizey commented 1 year ago

    The running code (with error) is in the assets branch of the pack11ty project, which depends on the assets branch of the eleventy-plugin-pack11ty plugin.

    nhoizey commented 1 year ago

    I just saw there's a recent commit on src/TemplateRender.js:

    Could this be related?

    nhoizey commented 1 year ago

    It looks like my local copy was in an unstable state, because reinstalling npm dependencies fixed the issue.

    Sorry, closing.