"Precompiling assets failed" 推送到 heroku 时出错

"Precompiling assets failed" error when pushing to heroku

查看了过去关于 SO 的帖子,但找不到解决方案。

环境:

  1. Mac OS 大苏尔
  2. Rails6.1.3.2
  3. ruby 3.0.1p64

Github 回购 https://github.com/tenzan/ruby-bootcamp

根据https://blog.corsego.com/rails-6-install-bootstrap-with-webpacker-tldr

添加了Bootsrtap 5

推送到 heroku 我 运行 git push heroku main

输出:

Enumerating objects: 109, done.
Counting objects: 100% (109/109), done.
Delta compression using up to 8 threads
Compressing objects: 100% (94/94), done.
Writing objects: 100% (109/109), 141.43 KiB | 4.16 MiB/s, done.
Total 109 (delta 5), reused 0 (delta 0), pack-reused 0
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Building on the Heroku-20 stack
remote: -----> Determining which buildpack to use for this app
remote:  !     Warning: Multiple default buildpacks reported the ability to handle this app. The first buildpack in the list below will be used.
remote:                         Detected buildpacks: Ruby,Node.js
remote:                         See https://devcenter.heroku.com/articles/buildpacks#buildpack-detect-order
remote: -----> Ruby app detected
remote: -----> Installing bundler 2.2.16
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-3.0.1
remote: -----> Installing dependencies using bundler 2.2.16
remote:        Running: BUNDLE_WITHOUT='development:test' BUNDLE_PATH=vendor/bundle BUNDLE_BIN=vendor/bundle/bin BUNDLE_DEPLOYMENT=1 bundle install -j4
remote:        Fetching gem metadata from https://rubygems.org/............
remote:        Fetching rake 13.0.3
remote:        Installing rake 13.0.3
remote:        Fetching concurrent-ruby 1.1.9
remote:        Fetching minitest 5.14.4
remote:        Fetching builder 3.2.4
remote:        Fetching zeitwerk 2.4.2
remote:        Installing builder 3.2.4
remote:        Installing zeitwerk 2.4.2
remote:        Installing minitest 5.14.4
remote:        Installing concurrent-ruby 1.1.9
remote:        Fetching erubi 1.10.0
remote:        Fetching racc 1.5.2
remote:        Fetching crass 1.0.6
remote:        Installing erubi 1.10.0
remote:        Installing crass 1.0.6
remote:        Fetching rack 2.2.3
remote:        Fetching nio4r 2.5.7
remote:        Installing rack 2.2.3
remote:        Installing racc 1.5.2 with native extensions
remote:        Installing nio4r 2.5.7 with native extensions
remote:        Fetching websocket-extensions 0.1.5
remote:        Installing websocket-extensions 0.1.5
remote:        Fetching marcel 1.0.1
remote:        Installing marcel 1.0.1
remote:        Fetching mini_mime 1.0.3
remote:        Fetching msgpack 1.4.2
remote:        Installing mini_mime 1.0.3
remote:        Installing msgpack 1.4.2 with native extensions
remote:        Using bundler 2.2.16
remote:        Fetching ffi 1.15.1
remote:        Installing ffi 1.15.1 with native extensions
remote:        Fetching method_source 1.0.0
remote:        Installing method_source 1.0.0
remote:        Fetching pg 1.2.3
remote:        Installing pg 1.2.3 with native extensions
remote:        Fetching thor 1.1.0
remote:        Installing thor 1.1.0
remote:        Fetching tilt 2.0.10
remote:        Installing tilt 2.0.10
remote:        Fetching semantic_range 3.0.0
remote:        Installing semantic_range 3.0.0
remote:        Fetching turbolinks-source 5.2.0
remote:        Installing turbolinks-source 5.2.0
remote:        Fetching i18n 1.8.10
remote:        Installing i18n 1.8.10
remote:        Fetching tzinfo 2.0.4
remote:        Installing tzinfo 2.0.4
remote:        Fetching websocket-driver 0.7.4
remote:        Installing websocket-driver 0.7.4 with native extensions
remote:        Fetching rack-test 1.1.0
remote:        Installing rack-test 1.1.0
remote:        Fetching rack-proxy 0.7.0
remote:        Installing rack-proxy 0.7.0
remote:        Fetching sprockets 4.0.2
remote:        Installing sprockets 4.0.2
remote:        Fetching mail 2.7.1
remote:        Installing mail 2.7.1
remote:        Fetching nokogiri 1.11.7 (x86_64-linux)
remote:        Installing nokogiri 1.11.7 (x86_64-linux)
remote:        Fetching puma 5.3.2
remote:        Installing puma 5.3.2 with native extensions
remote:        Fetching turbolinks 5.2.1
remote:        Installing turbolinks 5.2.1
remote:        Fetching activesupport 6.1.3.2
remote:        Installing activesupport 6.1.3.2
remote:        Fetching loofah 2.10.0
remote:        Installing loofah 2.10.0
remote:        Fetching bootsnap 1.7.5
remote:        Installing bootsnap 1.7.5 with native extensions
remote:        Fetching rails-dom-testing 2.0.3
remote:        Installing rails-dom-testing 2.0.3
remote:        Fetching globalid 0.4.2
remote:        Installing globalid 0.4.2
remote:        Fetching activemodel 6.1.3.2
remote:        Installing activemodel 6.1.3.2
remote:        Fetching jbuilder 2.11.2
remote:        Installing jbuilder 2.11.2
remote:        Fetching rails-html-sanitizer 1.3.0
remote:        Installing rails-html-sanitizer 1.3.0
remote:        Fetching activejob 6.1.3.2
remote:        Installing activejob 6.1.3.2
remote:        Fetching activerecord 6.1.3.2
remote:        Installing activerecord 6.1.3.2
remote:        Fetching actionview 6.1.3.2
remote:        Installing actionview 6.1.3.2
remote:        Fetching actionpack 6.1.3.2
remote:        Installing actionpack 6.1.3.2
remote:        Fetching actioncable 6.1.3.2
remote:        Installing actioncable 6.1.3.2
remote:        Fetching activestorage 6.1.3.2
remote:        Installing activestorage 6.1.3.2
remote:        Fetching actionmailer 6.1.3.2
remote:        Installing actionmailer 6.1.3.2
remote:        Fetching railties 6.1.3.2
remote:        Installing railties 6.1.3.2
remote:        Fetching sprockets-rails 3.2.2
remote:        Installing sprockets-rails 3.2.2
remote:        Fetching actionmailbox 6.1.3.2
remote:        Installing actionmailbox 6.1.3.2
remote:        Fetching actiontext 6.1.3.2
remote:        Installing actiontext 6.1.3.2
remote:        Fetching webpacker 5.4.0
remote:        Installing webpacker 5.4.0
remote:        Fetching rails 6.1.3.2
remote:        Installing rails 6.1.3.2
remote:        Fetching sassc 2.4.0
remote:        Installing sassc 2.4.0 with native extensions
remote:        Fetching sassc-rails 2.1.2
remote:        Installing sassc-rails 2.1.2
remote:        Fetching sass-rails 6.0.0
remote:        Installing sass-rails 6.0.0
remote:        Bundle complete! 15 Gemfile dependencies, 56 gems now installed.
remote:        Gems in the groups 'development' and 'test' were not installed.
remote:        Bundled gems are installed into `./vendor/bundle`
remote:        Bundle completed (146.80s)
remote:        Cleaning up the bundler cache.
remote: -----> Installing node-v12.16.2-linux-x64
remote: -----> Installing yarn-v1.22.4
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        yarn install v1.22.4
remote:        [1/4] Resolving packages...
remote:        [2/4] Fetching packages...
remote:        info fsevents@2.3.2: The platform "linux" is incompatible with this module.
remote:        info "fsevents@2.3.2" is an optional dependency and failed compatibility check. Excluding it from installation.
remote:        info fsevents@1.2.13: The platform "linux" is incompatible with this module.
remote:        info "fsevents@1.2.13" is an optional dependency and failed compatibility check. Excluding it from installation.
remote:        [3/4] Linking dependencies...
remote:        warning " > bootstrap@5.0.1" has unmet peer dependency "@popperjs/core@^2.9.2".
remote:        [4/4] Building fresh packages...
remote:        Done in 24.91s.
remote:        I, [2021-06-09T23:24:38.397155 #1355]  INFO -- : Writing /tmp/build_c3bdb2fc/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js
remote:        I, [2021-06-09T23:24:38.397546 #1355]  INFO -- : Writing /tmp/build_c3bdb2fc/public/assets/manifest-b4bf6e57a53c2bdb55b8998cc94cd00883793c1c37c5e5aea3ef6749b4f6d92b.js.gz
remote:        I, [2021-06-09T23:24:38.397826 #1355]  INFO -- : Writing /tmp/build_c3bdb2fc/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css
remote:        I, [2021-06-09T23:24:38.398005 #1355]  INFO -- : Writing /tmp/build_c3bdb2fc/public/assets/application-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css.gz
remote:        I, [2021-06-09T23:24:38.398268 #1355]  INFO -- : Writing /tmp/build_c3bdb2fc/public/assets/static_pages-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css
remote:        I, [2021-06-09T23:24:38.398458 #1355]  INFO -- : Writing /tmp/build_c3bdb2fc/public/assets/static_pages-04024382391bb910584145d8113cf35ef376b55d125bb4516cebeb14ce788597.css.gz
remote:        Compiling...
remote:        Compilation failed:
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        ModuleNotFoundError: Module not found: Error: Can't resolve '@popperjs/core' in '/tmp/build_c3bdb2fc/node_modules/bootstrap/dist/js'
remote:            at /tmp/build_c3bdb2fc/node_modules/webpack/lib/Compilation.js:925:10
remote:            at /tmp/build_c3bdb2fc/node_modules/webpack/lib/NormalModuleFactory.js:401:22
remote:            at /tmp/build_c3bdb2fc/node_modules/webpack/lib/NormalModuleFactory.js:130:21
remote:            at /tmp/build_c3bdb2fc/node_modules/webpack/lib/NormalModuleFactory.js:224:22
remote:            at /tmp/build_c3bdb2fc/node_modules/neo-async/async.js:2830:7
remote:            at /tmp/build_c3bdb2fc/node_modules/neo-async/async.js:6877:13
remote:            at /tmp/build_c3bdb2fc/node_modules/webpack/lib/NormalModuleFactory.js:214:25
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:213:14
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:41:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:30:40
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/forEachBail.js:30:14
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:13:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:25:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/Resolver.js:285:5
remote:            at eval (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:14:1)
remote:            at /tmp/build_c3bdb2fc/node_modules/enhanced-resolve/lib/RootPlugin.js:37:38
remote:            at _next42 (eval at create (/tmp/build_c3bdb2fc/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
remote:        resolve '@popperjs/core' in '/tmp/build_c3bdb2fc/node_modules/bootstrap/dist/js'
remote:          Parsed request is a module
remote:          using description file: /tmp/build_c3bdb2fc/node_modules/bootstrap/package.json (relative path: ./dist/js)
remote:            Field 'browser' doesn't contain a valid alias configuration
remote:            resolve as module
remote:              looking for modules in /tmp/build_c3bdb2fc/app/javascript
remote:                using description file: /tmp/build_c3bdb2fc/package.json (relative path: ./app/javascript)
remote:                  Field 'browser' doesn't contain a valid alias configuration
remote:                  using description file: /tmp/build_c3bdb2fc/package.json (relative path: ./app/javascript/@popperjs/core)
remote:                    no extension
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core doesn't exist
remote:                    .mjs
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.mjs doesn't exist
remote:                    .js
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.js doesn't exist
remote:                    .sass
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.sass doesn't exist
remote:                    .scss
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.scss doesn't exist
remote:                    .css
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.css doesn't exist
remote:                    .module.sass
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.module.sass doesn't exist
remote:                    .module.scss
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.module.scss doesn't exist
remote:                    .module.css
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.module.css doesn't exist
remote:                    .png
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.png doesn't exist
remote:                    .svg
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.svg doesn't exist
remote:                    .gif
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.gif doesn't exist
remote:                    .jpeg
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.jpeg doesn't exist
remote:                    .jpg
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core.jpg doesn't exist
remote:                    as directory
remote:                      /tmp/build_c3bdb2fc/app/javascript/@popperjs/core doesn't exist
remote:              /tmp/build_c3bdb2fc/node_modules/bootstrap/dist/js/node_modules doesn't exist or is not a directory
remote:              /tmp/build_c3bdb2fc/node_modules/bootstrap/dist/node_modules doesn't exist or is not a directory
remote:              /tmp/build_c3bdb2fc/node_modules/bootstrap/node_modules doesn't exist or is not a directory
remote:              /tmp/build_c3bdb2fc/node_modules/node_modules doesn't exist or is not a directory
remote:              /tmp/node_modules doesn't exist or is not a directory
remote:              /node_modules doesn't exist or is not a directory
remote:              looking for modules in /tmp/build_c3bdb2fc/node_modules
remote:                using description file: /tmp/build_c3bdb2fc/package.json (relative path: ./node_modules)
remote:                  Field 'browser' doesn't contain a valid alias configuration
remote:                  using description file: /tmp/build_c3bdb2fc/package.json (relative path: ./node_modules/@popperjs/core)
remote:                    no extension
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core doesn't exist
remote:                    .mjs
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.mjs doesn't exist
remote:                    .js
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.js doesn't exist
remote:                    .sass
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.sass doesn't exist
remote:                    .scss
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.scss doesn't exist
remote:                    .css
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.css doesn't exist
remote:                    .module.sass
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.module.sass doesn't exist
remote:                    .module.scss
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.module.scss doesn't exist
remote:                    .module.css
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.module.css doesn't exist
remote:                    .png
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.png doesn't exist
remote:                    .svg
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.svg doesn't exist
remote:                    .gif
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.gif doesn't exist
remote:                    .jpeg
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.jpeg doesn't exist
remote:                    .jpg
remote:                      Field 'browser' doesn't contain a valid alias configuration
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core.jpg doesn't exist
remote:                    as directory
remote:                      /tmp/build_c3bdb2fc/node_modules/@popperjs/core doesn't exist
remote:        Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote:        The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote:         ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote:        to the "plugins" section of your Babel config.
remote:        
remote: 
remote:  !
remote:  !     Precompiling assets failed.
remote:  !
remote:  !     Push rejected, failed to compile Ruby app.
remote: 
remote:  !     Push failed
remote: Verifying deploy...
remote: 
remote: !       Push rejected to ruby-bootcamp-askar.
remote: 
To https://git.heroku.com/ruby-bootcamp-askar.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/ruby-bootcamp-askar.git'

ModuleNotFoundError: Module not found: Error: Can't resolve '@popperjs/core'提示需要安装@popperjs/core.