全局安装CLI工具后模板文件缺失,运行时提示ENOENT错误求助
问题解决:全局CLI工具无法找到模板文件
问题原因
你使用的相对路径./bin/templates/_app.ejs是基于当前工作目录(即测试时创建的单独目录)解析的,而非CLI工具全局安装后的实际文件路径,因此运行时会出现文件找不到的错误。
解决方案
改用绝对路径定位模板文件即可解决问题。由于你的项目是ES模块(package.json中type: "module"),可通过import.meta.url获取当前模块的绝对路径,结合path模块拼接模板路径:
- 导入必要模块:
import path from 'path'; import { fileURLToPath } from 'url';
- 获取当前文件的绝对路径及所在目录:
const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename);
- 拼接模板文件的绝对路径:
// 以_app.ejs为例 const appTemplatePath = path.join(__dirname, 'templates', '_app.ejs');
后续用这个appTemplatePath读取模板文件,就能在任意目录下正确定位到文件。
Markdown树形结构写法
你可以用以下格式展示文件夹结构,可读性更强:
┌── bin/ │ ├── templates/ │ │ ├── _app.ejs │ │ ├── _styles.ejs │ │ └── _index.ejs │ ├── index.js │ └── utils.js
内容的提问来源于stack exchange,提问作者Viraj Doshi
相关产品推荐
相关产品推荐

