Skip to content
This repository has been archived by the owner on Feb 5, 2022. It is now read-only.

Cannot include EJS partials (second issue), and missing copy action #176

Open
scscgit opened this issue Jul 17, 2021 · 0 comments
Open

Cannot include EJS partials (second issue), and missing copy action #176

scscgit opened this issue Jul 17, 2021 · 0 comments

Comments

@scscgit
Copy link

scscgit commented Jul 17, 2021

I'm unable to include a file from within a template, similar to #96.

I'm new to SAO and EJS and I'm not sure if this is the correct usage, but I didn't find anything related to it in the documentation. To reproduce it I created a new generator:
npx sao generator sao-name
npx sao --version

sao/1.7.1 win32-x64 node-v12.16.3

I added code like <% include file %>, <%- include file %>, or <% include file.txt %> to template/README.md, and then created a file template/file.txt.

Running npx sao . results in

error Error: Could not find the include file "file"
    at getIncludePath (C:\ProjectsExternal\sao-name\node_modules\ejs\lib\ejs.js:165:13)
    at includeSource (C:\ProjectsExternal\sao-name\node_modules\ejs\lib\ejs.js:309:17)
    at C:\ProjectsExternal\sao-name\node_modules\ejs\lib\ejs.js:745:26
    at Array.forEach (<anonymous>)
    at Template.generateSource (C:\ProjectsExternal\sao-name\node_modules\ejs\lib\ejs.js:721:15)
    at Template.compile (C:\ProjectsExternal\sao-name\node_modules\ejs\lib\ejs.js:574:12)
    at Object.compile (C:\ProjectsExternal\sao-name\node_modules\ejs\lib\ejs.js:392:16)
    at Transformer.render (C:\ProjectsExternal\sao-name\node_modules\jstransformer\index.js:288:44)
    at C:\ProjectsExternal\sao-name\node_modules\sao\lib\runActions.js:69:27
    at Array.forEach (<anonymous>)

I was also unable to use this as part of https://github.com/nuxt/create-nuxt-app generator, where I had a use-case of duplicating contents of one file to another. I originally wanted to use something like a copy action, but it seems there is no such thing available based on https://sao.vercel.app/saofile.html#actions (note: please add this link to https://sao.vercel.app/guide/creating-generators.html#folder-structure because it's almost impossible to find). If this use-case is supported using some workaround (except hard-coding fs usage in completed section, as mentioned by #126), please mention some example in the docs.

When debugging the issue, options at https://github.com/mde/ejs/blob/576283bb5db2f5b6d2c9f979163a84644f581697/lib/ejs.js#L174 has the value of {"client":false,"compileDebug":true,"debug":false,"openDelimiter":"<","closeDelimiter":">","delimiter":"%","strict":false,"cache":false,"localsName":"locals","legacyInclude":true,"_with":true}, and so because it's missing filename field, it isn't resolved using a relative path.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant