Чтобы использовать EJS с PKG, я просто изменил некоторые настройки в своих файлах.
В app.js
Я только что добавил папку views
в качестве статического ресурса.
app.js:
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.static(path.join(__dirname, 'views'))); // Line exists just for PKG
В package.json
вам необходимо указать свои активы и начальную точку.
package.json:
...
"main": "app.js",
"bin": "app.js",
...
"pkg": {
"assets": ["views/**/*", "public/**/*"]
}
И что более важнопо моему мнению, потому что это привело к головной боли, при компиляции с использованием PKG вам нужно указать, что вы компилируете весь проект в папке, так как он должен найти файл package.json
и перейти оттуда, чтобы увидеть, что этоneeds.
Использование: pkg .
Я получаю сообщение об ошибке, которое вы опубликовали, когда я компилировал, используя только pkg app.js
, и вместо этого использовал pkg .
, исправил проблему по большей части,Технически вы можете пропустить изменения в app.js
, но это изменение гарантирует, что папка views
включена в двоичный файл, так как простое добавление ее в файл package.json
в разделе assets
, похоже, само по себе не работает,(Также обратите внимание, что использование path.join
необходимо)