Octopack не будет упаковывать вывод сборки ng, когда есть подпапки
Версия gulp-octo здесь - 0.0.10, которая больше не является текущей версией. Это может или не может применяться к более новым версиям
Команда angular-cli ng-build
строит мое угловое приложение в папку /dist.
Я получаю плоскую папку dist, содержащую мои файлы js, html и т. Д.
/dist
index.html
inline.js
[etc]
Я тогда могу использовать gulp-octo
чтобы опубликовать мой пакет на моем хосте развертывания осьминога, например так:
// You need to bump version in package.json and ng build before running this
gulp.task("publish", function() {
return gulp.src(["dist/**"])
.pipe(octo.pack())
.pipe(octo.push(octoConfig));
});
Который работает.
Затем я добавляю файл assetFile.png в файл активов. Это меняет то, как выглядит /dist. Он больше не совсем плоский:
/dist
/assets
assetFile.png
index.html
inline.js
[etc]
Вдруг, gulp publish
не удается с этой ошибкой:
λ gulp publish
[11:14:58] Using gulpfile C:\Source\blank-angular-cli-app\gulpfile.js
[11:14:58] Starting 'publish'...
[11:14:58] Packed 'foo.0.0.0.2.tar.gz' with 10 files
C:\Source\blank-angular-cli-app\node_modules\@octopusdeploy\octopackjs\lib\pack.js:26
throw err;
^
Error: ENOENT: no such file or directory, stat 'C:\Source\blank-angular-cli-app\assets'
at Error (native)
Он явно недоволен папкой /dist, содержащей подпапки (я получаю ту же ошибку, если добавляю папки в dist после сборки). Но я не уверен, почему и что с этим делать.
Что здесь происходит? Как мне исправить это развертывание?
Минимальный пример того, что происходит, - это Github, пустое приложение, которое я создал с помощью ng init
(angular-cli) и затем добавил глоток и осьминога к.
2 ответа
Таким образом, исправление заключается в добавлении ресурсов / папки на верхнем уровне.
- assets
unrelatedDoesntMatter.png
- dist
- assets
assetFile.png
[etc]
Вот коммит, который исправляет мой пример приложения. Эта папка не имеет значения и не упаковывается. Это просто должно существовать. Странно, похоже на ошибку в gulp-octo.
Если вы измените строку 20 в вашем файле gulp.js
return gulp.src(["dist/**"])
в
return gulp.src(["dist/**"], { "base" : "." })
это будет работать. Этот второй параметр gulp.src говорит ему, что нужно выбрать все каталоги. См. Этот пост для получения дополнительной информации: Как я могу рекурсивно копировать каталоги с помощью gulp?