为什么带有@nuxt/pwa模块的`nuxt generate`总是在Gitlab-CI中生成默认图标?
Why does `nuxt generate` with @nuxt/pwa module generates always default icon in Gitlab-CI?
我有以下问题。我将 nuxt 与 pwa 模块一起使用来生成预渲染的网页。 @nuxt/pwa 图标模块应该为清单生成不同大小的图标。
当我 运行 nuxt generate
在我的笔记本电脑上时,这也有效。
在我的 gitlab-ci 流水线中,生成也在工作,但它总是生成默认的 nuxt 图标
这个图标我不能在我的工作区中所以我猜它在 docker 构建中以某种方式被引用 node_modules.
我正在使用以下 gitlab-ci 作业
build:
image: node:alpine
stage: build
script:
- npm run generate
artifacts:
paths:
- dist/*
expire_in: 14 days
only:
- master
package.json
看起来像这样:
"scripts": {
"generate": "nuxt generate",
...
},
"dependencies": {
"@nuxtjs/pwa": "^3.0.0-beta.20",
"nuxt": "^2.14.0",
...
},
"devDependencies": {
...
}
我也在 nuxt.conf.js 中尝试了很多不同的设置,因为我猜是图标没有被正确引用。
这是我最后一次尝试
pwa: {
icon: {
source: resolve(__dirname, './client/static/icon.png'),
},
},
但是因为是在当地找到的,所以我觉得是对的。
有没有人知道为什么 nuxt generate
在 gitlab-ci 中不起作用?
我遇到了同样的问题,图标在我的本地环境中也没有更新。现在我可以通过添加
来修复它
pwa: {
icon: {
fileName: 'app-icon.png',
},
},
到我的 nuxt.config.js 并相应地更改文件名。但这可能有点老套。
我使用 Netlify 进行部署并清除了那里的缓存,但没有成功。您是否清除了 Gitlab 中的 Runner Cache 然后再次尝试?
问题似乎是位于 /node_modules/.cache/pwa/icon
的旧缓存
如果文件名未更改,Nuxt 不会生成新图标,这就是使用默认图标的原因。特别是如果您的新图标文件是 'icon.png'.
你可以通过三种方式解决这个问题:
部署前删除 /node_modules/.cache/pwa/icon
的缓存,但这仅适用于 local/dev 环境,因此已过期。
您可以按照其他评论的建议重命名文件,但每次更改文件时都必须重命名。因此,虽然这可行,但它仍然远非好,即使对于一个 hacky 解决方案也是如此。
第三种方法是在 yarn/npm 生成脚本中删除该文件夹。这看起来像这样:
generate: 'rm -r /node_modules/.cache/pwa/icon && nuxt generate';
这对我有用,
删除以下内容:
- node_modules/.cache
- .nuxt
- dist(如果生成)
然后执行以下操作:
npm install
npm run generate
我有以下问题。我将 nuxt 与 pwa 模块一起使用来生成预渲染的网页。 @nuxt/pwa 图标模块应该为清单生成不同大小的图标。
当我 运行 nuxt generate
在我的笔记本电脑上时,这也有效。
在我的 gitlab-ci 流水线中,生成也在工作,但它总是生成默认的 nuxt 图标
这个图标我不能在我的工作区中所以我猜它在 docker 构建中以某种方式被引用 node_modules.
我正在使用以下 gitlab-ci 作业
build:
image: node:alpine
stage: build
script:
- npm run generate
artifacts:
paths:
- dist/*
expire_in: 14 days
only:
- master
package.json
看起来像这样:
"scripts": {
"generate": "nuxt generate",
...
},
"dependencies": {
"@nuxtjs/pwa": "^3.0.0-beta.20",
"nuxt": "^2.14.0",
...
},
"devDependencies": {
...
}
我也在 nuxt.conf.js 中尝试了很多不同的设置,因为我猜是图标没有被正确引用。
这是我最后一次尝试
pwa: {
icon: {
source: resolve(__dirname, './client/static/icon.png'),
},
},
但是因为是在当地找到的,所以我觉得是对的。
有没有人知道为什么 nuxt generate
在 gitlab-ci 中不起作用?
我遇到了同样的问题,图标在我的本地环境中也没有更新。现在我可以通过添加
来修复它pwa: {
icon: {
fileName: 'app-icon.png',
},
},
到我的 nuxt.config.js 并相应地更改文件名。但这可能有点老套。
我使用 Netlify 进行部署并清除了那里的缓存,但没有成功。您是否清除了 Gitlab 中的 Runner Cache 然后再次尝试?
问题似乎是位于 /node_modules/.cache/pwa/icon
如果文件名未更改,Nuxt 不会生成新图标,这就是使用默认图标的原因。特别是如果您的新图标文件是 'icon.png'.
你可以通过三种方式解决这个问题:
部署前删除
/node_modules/.cache/pwa/icon
的缓存,但这仅适用于 local/dev 环境,因此已过期。您可以按照其他评论的建议重命名文件,但每次更改文件时都必须重命名。因此,虽然这可行,但它仍然远非好,即使对于一个 hacky 解决方案也是如此。
第三种方法是在 yarn/npm 生成脚本中删除该文件夹。这看起来像这样:
generate: 'rm -r /node_modules/.cache/pwa/icon && nuxt generate';
这对我有用,
删除以下内容:
- node_modules/.cache
- .nuxt
- dist(如果生成)
然后执行以下操作:
npm install
npm run generate