Я использую Capistrano для развертывания моего Rails-приложения.
assets:precompile
не удается из-за использования старого кода. Почему он не использует только что установленный пакет пряжи?
Я разбудил @fancyapps/fancybox
репо, чтобы решить эту проблему .
- Прикоснулся к одному файлу.
- Ран
gulp
Задание.
- толкнул на развилку к новой ветке под названием
unquote-max-css-function
Теперь пришло время использовать его в моем проекте.
Ран yarn upgrade git+ssh://git@github.com:light-flight/fancybox.git#unquote-max-css-function
Локально это работает - все пакеты кода успешно. Но в производстве он использует старые активы во время assets:precompile
(см. Журналы ниже).
Я уверен, что Yarn связал мое репо, потому что раньше запрашивал права доступа.
производственная ошибка:
...
00:24 yarn:install
01 yarn install --production
01 yarn install v1.12.3
01 [1/4] Resolving packages...
01 [2/4] Fetching packages...
01 warning Pattern ["animate.css@latest"] is trying to unpack in the same destination "/home/deploy/.cache/yarn/v4/npm-animate-css-3.7.0-5de25d…
01 info fsevents@1.2.9: The platform "linux" is incompatible with this module.
01 info "fsevents@1.2.9" is an optional dependency and failed compatibility check. Excluding it from installation.
01 [3/4] Linking dependencies...
01 warning "@rails/webpacker > pnp-webpack-plugin > ts-pnp@1.1.2" has unmet peer dependency "typescript@*".
01 warning " > webpack-dev-server@3.3.1" has unmet peer dependency "webpack@^4.0.0".
01 warning "webpack-dev-server > webpack-dev-middleware@3.6.2" has unmet peer dependency "webpack@^4.0.0".
01 [4/4] Building fresh packages...
01 Done in 15.13s.
00:41 deploy:assets:precompile
01 ~/.rvm/bin/rvm default do bundle exec rake assets:precompile
01 yarn install v1.12.3
01 [1/4] Resolving packages...
01 success Already up-to-date.
01 Done in 1.30s.
01 rake aborted!
01 SassC::SyntaxError: Error: "env(safe-area-inset-right)" is not a number for `max'
01 on line 11366 of stdin, in function `max`
01 from line 11366 of stdin
01 >> padding: 75px max(44px, env(safe-area-inset-right)) max(25px, env(safe-a
01 ------------------^
01 stdin:11366
01 /home/deploy/apps/app/shared/bundle/ruby/2.6.0/gems/sassc-2.0.1/lib/sassc/engine.rb:49:in `render'
01 /home/deploy/apps/app/shared/bundle/ruby/2.6.0/gems/sassc-rails-2.1.1/lib/sassc/rails/compressor.rb:29:in `call'
01 /home/deploy/apps/app/shared/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_compressor.rb:28:in `call'
...
Как видите, он пытается скомпилировать старый код с помощью функции max
без кавычек.
Локально успешно компилируется:
$ rails assets:precompile
yarn install v1.15.2
[1/4] Resolving packages...
success Already up-to-date.
Done in 1.42s.
I, [2019-05-05T13:02:34.620408 #10872] INFO -- : Writing /home/user/apps/app/public/assets/application-6f331dc14f50de04a8e7dd5d4c4882ffbf78cefc5ac4d73294ea48912d74a2a5.css
I, [2019-05-05T13:02:34.620871 #10872] INFO -- : Writing /home/user/apps/app/public/assets/application-6f331dc14f50de04a8e7dd5d4c4882ffbf78cefc5ac4d73294ea48912d74a2a5.css.gz
Я пытался yarn cache clean
, но ничего не изменилось. Как заставить рельсы использовать мою вилку?