当有子文件夹时,Octopack 不会打包 ng build 输出
Octopack won't package ng build output when there are subfolders
这里的gulp-octo版本是0.0.10,已经不是当前版本了。这可能适用于也可能不适用于较新的版本
angular-cli 命令 ng-build
将我的 angular 应用构建到 /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) 创建的空白应用程序,然后添加了 gulp 和章鱼到.
所以解决方法是在顶层添加一个 assets/ 文件夹。
- assets
unrelatedDoesntMatter.png
- dist
- assets
assetFile.png
[etc]
这里是commit that fixes my example app。这个文件夹无关紧要,也不会打包。它只需要存在。奇怪,看起来像是 gulp-octo.
中的错误
如果您更改 gulp.js 文件中的第 20 行
return gulp.src(["dist/**"])
到
return gulp.src(["dist/**"], { "base" : "." })
它会起作用的。 gulp.src 的第二个参数告诉它获取所有目录。有关详细信息,请参阅此 post:How do I copy directories recursively with gulp?
这里的gulp-octo版本是0.0.10,已经不是当前版本了。这可能适用于也可能不适用于较新的版本
angular-cli 命令 ng-build
将我的 angular 应用构建到 /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) 创建的空白应用程序,然后添加了 gulp 和章鱼到.
所以解决方法是在顶层添加一个 assets/ 文件夹。
- assets
unrelatedDoesntMatter.png
- dist
- assets
assetFile.png
[etc]
这里是commit that fixes my example app。这个文件夹无关紧要,也不会打包。它只需要存在。奇怪,看起来像是 gulp-octo.
中的错误如果您更改 gulp.js 文件中的第 20 行
return gulp.src(["dist/**"])
到
return gulp.src(["dist/**"], { "base" : "." })
它会起作用的。 gulp.src 的第二个参数告诉它获取所有目录。有关详细信息,请参阅此 post:How do I copy directories recursively with gulp?