我正在使用从src/
编译到lib/
文件夹的Typescript,以及从lib/
编译到dist/
的Babel。
我遇到的问题是,在编译应用程序时,.handlebars
中有src/email_templates/
个文件没有被复制到dist/
中。因此,当我运行该应用程序时,由于dist/email_templates/
不存在而失败,并显示错误。
我正在使用nodemailer-handlebars
软件包,并尝试将email_templates/
文件夹移到项目根目录并将viewPath
设置到该文件夹,但是由于该应用程序位于var/www/api.my-domain.com/
。看来我在api.my-domain.com
文件夹名称中有句点的事实导致viewPath失败并出现错误:
TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received type undefined
at validateString (internal/validators.js:125:11)
at Object.resolve (path.js:1080:7)
at ExpressHandlebars._resolveLayoutPath (/var/www/api.my-domain.com/node_modules/express-handlebars/lib/express-handlebars.js:342:17)
at ExpressHandlebars.<anonymous> (/var/www/api.my-domain.com/node_modules/express-handlebars/lib/express-handlebars.js:223:35)
这是我的package.json脚本,用于构建应用程序:
"build": "tsc && babel ./lib --out-dir ./dist ",
如何更改此设置,以使其删除dist/email_templates
的当前内容,然后将src/email_templates
的内容复制到dist/email_templates
?
答案 0 :(得分:0)
删除dist / email_templates的当前内容,然后将src / email_templates的内容复制到dist / email_templates
另外两个npm软件包
答案 1 :(得分:0)
使用cpx软件包已解决:https://www.npmjs.com/package/cpx
npm install cpx --save-dev
Package.json:
- "build": "tsc && babel ./lib --out-dir ./dist",
+ "build": "tsc && babel ./lib --out-dir ./dist && cpx \"./src/email_templates/**/*\" ./dist/email_templates --clean",
npm run build