#gitlab #icons #nuxt.js #gitlab-ci #progressive-web-apps
#gitlab #Значки #nuxt.js #gitlab-ci #progressive-web-apps
Вопрос:
У меня следующая проблема. Я использую 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?
Ответ №1:
Проблема, похоже, в старом кэше, расположенном по адресу /node_modules/.cache/pwa/icon
Nuxt не генерирует новые значки, если имена файлов не изменены, поэтому используются значки по умолчанию. Особенно, если ваш новый файл значков — «icon.png».
Вы могли бы сделать это тремя способами:
-
Удалите кэш
/node_modules/.cache/pwa/icon
перед развертыванием, но это работает только с локальной средой / dev, поэтому это исключено. -
Вы можете переименовать свой файл, как было предложено в другом комментарии, но вам придется переименовывать его каждый раз, когда вы меняете файл. Так что, хотя это и сработает, это все еще далеко не хорошо, даже для хакерского решения.
-
Третий подход заключается в удалении этой папки в вашем скрипте генерации yarn / npm. Это будет выглядеть примерно так:
generate: 'rm -r /node_modules/.cache/pwa/icon amp;amp; nuxt generate';
Комментарии:
1. Для меня я должен использовать
generate: 'rm -r node_modules/.cache/pwa/icon amp;amp; nuxt generate';
(удалить/
перед node_modules).
Ответ №2:
У меня была такая же проблема, и значки не обновлялись также в моей локальной среде. На данный момент я смог это исправить, добавив
pwa: {
icon: {
fileName: 'app-icon.png',
},
},
на мой nuxt.config.js и соответствующим образом измените имя файла. Но это, вероятно, немного халтурно.
Я использую Netlify для развертывания и очистил там кеш, но безуспешно. Вы очистили кэш бегуна в Gitlab, а затем попробовали еще раз?
Комментарии:
1. Я не уверен, и мне нужно сузить, была ли это очистка кэша или изменение конфигурации с явной ссылкой на значок, но теперь это работает. Спасибо за подсказку.
2. Я дважды проверил свой конвейер. Это был кэш бегунов. После его очистки я также могу использовать неявную версию
nuxt.config.js
. Сбой с одной из двух сложных задач в информатике (именование вещей и) аннулирование кэша: -O
Ответ №3:
Это сработало для меня,
Удалите следующее:
- node_modules /.cache
- .nuxt
- dist (если сгенерирован)
Затем выполните следующие действия:
npm install
npm run generate