Как скопировать файлы руля в папку dist - PullRequest
1 голос
/ 28 мая 2019

Я использую Typescript, который компилируется из папки src/ в lib/, и Babel, который компилируется из lib/ в dist/.

У меня проблема в том, что у меня есть .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?

Ответы [ 2 ]

0 голосов
/ 28 мая 2019

Решено с помощью пакета 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
0 голосов
/ 28 мая 2019

удаляет текущее содержимое dist / email_templates, затем копирует содержимое src / email_templates в dist / email_templates

Два дополнительных пакета npm

...