"No Entry Module Error" when deploying the Rails 6 app on Heroku

I am trying to deploy the Rails 6 application through Heroku and I encounter an "EntryModuleNotFoundError".

I am very new to this area and am mostly learning to troubleshoot deployment issues, but I don't really know where to start here. Here is my source code and the full logs I am trying to deploy …

https://github.com/Jordan-Weatherford/Packbuilder

Enumerating objects: 55, done.
Counting objects: 100% (55/55), done.
Delta compression using up to 4 threads
Compressing objects: 100% (41/41), done.
Writing objects: 100% (41/41), 4.29 KiB | 1.43 MiB/s, done.
Total 41 (delta 31), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.6.4
remote: -----> Vendoring libpq 5.12.1
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Installing dependencies using bundler 1.17.3
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
remote:        Using rake 13.0.1
remote:        Using concurrent-ruby 1.1.5
remote:        Using i18n 1.7.0
remote:        Using minitest 5.13.0
remote:        Using thread_safe 0.3.6
remote:        Using tzinfo 1.2.5
remote:        Using zeitwerk 2.2.1
remote:        Using activesupport 6.0.1
remote:        Using builder 3.2.3
remote:        Using erubi 1.9.0
remote:        Using mini_portile2 2.4.0
remote:        Using nokogiri 1.10.5
remote:        Using rails-dom-testing 2.0.3
remote:        Using crass 1.0.5
remote:        Using loofah 2.3.1
remote:        Using rails-html-sanitizer 1.3.0
remote:        Using actionview 6.0.1
remote:        Using rack 2.0.7
remote:        Using rack-test 1.1.0
remote:        Using actionpack 6.0.1
remote:        Using nio4r 2.5.2
remote:        Using websocket-extensions 0.1.4
remote:        Using websocket-driver 0.7.1
remote:        Using actioncable 6.0.1
remote:        Using globalid 0.4.2
remote:        Using activejob 6.0.1
remote:        Using activemodel 6.0.1
remote:        Using activerecord 6.0.1
remote:        Using mimemagic 0.3.3
remote:        Using marcel 0.3.3
remote:        Using activestorage 6.0.1
remote:        Using mini_mime 1.0.2
remote:        Using mail 2.7.1
remote:        Using actionmailbox 6.0.1
remote:        Using actionmailer 6.0.1
remote:        Using actiontext 6.0.1
remote:        Using net-ssh 5.2.0
remote:        Using net-scp 2.0.0
remote:        Using sshkit 1.20.0
remote:        Using airbrussh 1.4.0
remote:        Using bcrypt 3.1.13
remote:        Using msgpack 1.3.1
remote:        Using bootsnap 1.4.5
remote:        Using bundler 1.17.3
remote:        Using capistrano 3.11.2
remote:        Using capistrano-bundler 1.6.0
remote:        Using capistrano-passenger 0.2.0
remote:        Using capistrano-rails 1.4.0
remote:        Using capistrano-rbenv 2.1.4
remote:        Using ffi 1.11.2
remote:        Using multi_json 1.14.1
remote:        Using request_store 1.4.1
remote:        Using gon 6.2.1
remote:        Using hirb 0.7.3
remote:        Using jbuilder 2.9.1
remote:        Using method_source 0.9.2
remote:        Using pg 1.2.0
remote:        Using puma 4.3.0
remote:        Using rack-proxy 0.6.5
remote:        Using thor 0.20.3
remote:        Using railties 6.0.1
remote:        Using sprockets 4.0.0
remote:        Using sprockets-rails 3.2.1
remote:        Using rails 6.0.1
remote:        Using sassc 2.2.1
remote:        Using tilt 2.0.10
remote:        Using sassc-rails 2.1.2
remote:        Using sass-rails 6.0.0
remote:        Using turbolinks-source 5.2.0
remote:        Using turbolinks 5.2.1
remote:        Using webpacker 4.2.0
remote:        Bundle complete! 24 Gemfile dependencies, 71 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 (0.48s)
remote:        Cleaning up the bundler cache.
remote:        The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
remote: -----> Installing node-v10.15.3-linux-x64
remote: -----> Installing yarn-v1.16.0
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        yarn install v1.16.0
remote:        (1/4) Resolving packages...
remote:        (2/4) Fetching packages...
remote:        info fsevents@1.2.9: The platform "linux" is incompatible with this module.
remote:        info "fsevents@1.2.9" is an optional dependency and failed compatibility check. Excluding it from installation.
remote:        (3/4) Linking dependencies...
remote:        (4/4) Building fresh packages...
remote:        Done in 23.51s.
remote:        yarn install v1.16.0
remote:        (1/4) Resolving packages...
remote:        (2/4) Fetching packages...
remote:        info fsevents@1.2.9: The platform "linux" is incompatible with this module.
remote:        info "fsevents@1.2.9" is an optional dependency and failed compatibility check. Excluding it from installation.
remote:        (3/4) Linking dependencies...
remote:        (4/4) Building fresh packages...
remote:        Done in 5.10s.
remote:        Compiling...
remote:        Compilation failed:
remote:        EntryModuleNotFoundError: Entry module not found: Error: Can't resolve 'babel-loader' in '/tmp/build_fec055ded7d1dd320dd9101f872edefb'
remote:            at moduleFactory.create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/webpack/lib/Compilation.js:1075:31)
remote:            at factory (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/webpack/lib/NormalModuleFactory.js:401:22)
remote:            at resolver (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/webpack/lib/NormalModuleFactory.js:130:21)
remote:            at asyncLib.parallel (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/webpack/lib/NormalModuleFactory.js:337:24)
remote:            at /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/neo-async/async.js:2830:7
remote:            at /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/neo-async/async.js:6877:13
remote:            at /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/neo-async/async.js:2830:7
remote:            at done (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/neo-async/async.js:2925:13)
remote:            at resolver.resolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/webpack/lib/NormalModuleFactory.js:449:23)
remote:            at doResolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:213:14)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
remote:            at resolver.doResolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :27:1)
remote:            at resolver.doResolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :27:1)
remote:            at resolver.doResolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:30:40)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
remote:            at args (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/forEachBail.js:30:14)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
remote:            at resolver.doResolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:44:7)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :15:1)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn0 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :27:1)
remote:            at resolver.doResolve (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:67:43)
remote:            at hook.callAsync (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/enhanced-resolve/lib/Resolver.js:285:5)
remote:            at _fn1 (eval at create (/tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/tapable/lib/HookCodeFactory.js:33:10), :16:1)
remote:        resolve 'babel-loader' in '/tmp/build_fec055ded7d1dd320dd9101f872edefb'
remote:          Parsed request is a module
remote:          using description file: /tmp/build_fec055ded7d1dd320dd9101f872edefb/package.json (relative path: .)
remote:            resolve as module
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_fec055ded7d1dd320dd9101f872edefb/node_modules
remote:                using description file: /tmp/build_fec055ded7d1dd320dd9101f872edefb/package.json (relative path: ./node_modules)
remote:                  using description file: /tmp/build_fec055ded7d1dd320dd9101f872edefb/package.json (relative path: ./node_modules/babel-loader)
remote:                    no extension
remote:                      /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/babel-loader doesn't exist
remote:                    .js
remote:                      /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/babel-loader.js doesn't exist
remote:                    .json
remote:                      /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/babel-loader.json doesn't exist
remote:                    as directory
remote:                      /tmp/build_fec055ded7d1dd320dd9101f872edefb/node_modules/babel-loader doesn't exist
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 powerful-fjord-85815.
remote: 
To https://git.heroku.com/powerful-fjord-85815.git
 ! (remote rejected) master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/powerful-fjord-85815.git'

I understand that this is vague and probably lacks relevant information, but I am completely baffled and just looking for a small direction. Thank you in advance!

Is deploying a project riskier because of its size?

I discussed this point with my boss the other day. He claims that the bigger the codebase, the more risky deployment becomes. I say that this is not true, though I see why he could think that. In my experience, the size of the code base does not matter if you follow solid principles and perform good tests. I've tried to give examples of modern cars, and how reliable they are, even though there are thousands of moving parts. That's because every piece does its job and only its job and it does it well. Am I crazy or is this just one of the counterintuitive things that some people find difficult to accept?

Theme Development – Need help deploying an understrapped WordPress site from localhost to a live server?

I just developed my first site with Understrap / Understrap Child Theme. Now I'm ready to start the site (of course, today is the deadline) and my CSS changes will not take effect on the live server (WP Engine). After I've searched and searched for a tutorial on deploying an underpain-based site, and after reading the threads I could find, I think they may be due to references to my developer URL (localhost: 8888 / wordpress / understrap) not working. Although I edit the _child_theme.scss file directly in WordPress Admin, the changes / edits do not appear in the front-end – and no, it's not a caching issue because I need to take a few steps to get it right Provide this site for which I can not find a guide. 🙁

Would you please tell me which files need to be edited for live use after being developed locally and using npm / gulp / browsersync?

By the way, using Understrap has revived my love of web development. I really enjoyed working with Understrap. I just have to publish it today, otherwise my boss and the customer will kill me.

Here is the link to the website on WP Engine https://vancedev.wpengine.com
Thank you in advance for your help, I really appreciate that.

Apache 2.4 – Error deploying Django web with mod_wsgi (Forbidden: You do not have permission to access / on this server.)

Hi, I am trying to deploy my first Django website with Apache in Centos7

Versions: 
Apache: 2.4.6 
Django: 2.2.6
Python: 3.6.8

My Django project is located in the / srv directory and looks like this:

/srv/
└── MyApp
    ├── apps
    │   └── index
    ├── db.sqlite3
    ├── manage.py
    ├── media
    ├── root
    │   ├── __init__.py
    │   ├── __pycache__
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    ├── static
    │   ├── css
    │   └── images
    └── venv
        ├── bin
        ├── include
        ├── lib
        ├── lib64 -> lib
        ├── pip-selfcheck.json
        └── pyvenv.cfg

Test that I did:

1) I can access my Django website if I:

python manage.py runserver 0.0.0.0:80

2) If I only use Apache, I can see the Apache placeholder website.

3) Following this tutorial (https://www.shellhacks.com/modwsgi-hello-world-example/) I also tried to use mod_wsgi without Django, and was able to get it running (just had to replace the following one ) Make it work):

Allow from all --> Require all granted 
Order allow,deny --> Satisfy Any

My Apache configuration file is in /etc/httpd/conf.d

WSGIScriptAlias / /srv/MyApp/root/wsgi.py
WSGIPythonPath /srv/MyApp


    
        Require all granted
    


WSGIDaemonProcess myapp.com python-home=/srv/MyApp/root/venv python-path=/srv/MyApp
WSGIProcessGroup myapp.com

I'm pretty new to all this and I'm sure it's a little stupid that I'm not setting up properly, but I've been google and testing for over 10 hours now and I can not figure it out.

I hope someone could give me a guide. Thanks in advance.

Web Hosting – The Pros and Cons of Using Nginx Compared to Directly Deploying App Servers?

I'm developing an app server and wondering if I should use nginx or not. Many people just say to use Nginx, but I'm not sure it's always appropriate. For example, this Cloudflare blog is about exposing Go App servers to the Internet.

In my case, I use the Rust web framework Rocket. I asked and people said Nginx was nice to use their rate limiting and load balancing capabilities.

Could not I just let the Javascript client generate a random number for rate limiting purposes? If I have 10 servers, they just need to generate a random number between 1 and 10, connect to that server, and do the rest according to the law of big numbers?

In terms of rate limiting, NGINX seems to use a token bucket algorithm that could be trivially implemented on the app server in about 20 lines of code.

I've never used Nginx before and I'm generally extremely conservative when it comes to adding dependencies. I'm just wondering if it's worth the performance, latency and single-point-of-failure hit. It seems to be a complex cost-benefit analysis, and I generally do not know all the pros and cons.

Does anyone have an insight that could facilitate this decision?

iis8 – IIS: difference between sites and app pools when stopping / starting / deploying

I have used IIS here and there for various applications, mainly as a developer who has little to do with it. I never understood the full distinction between an IIS "website" and an application pool. I'm even more confused about this new project I'm working on because we seem to have multiple layers of app pools:

Our IIS panel:

LOCALHOST
^ Application Pools
> Sites
  > WebsiteX       (Main App Pool)
    > dev          (Dev App Pool, static files)
      ^ ServiceA  )
      ^ ServiceB  ) Service App Pool
      ^ ServiceC  )/

What services must be stopped when providing our application or parts of it? I've found that I can update the services if I stop the service app pool (otherwise, I get errors using the file). Do I have to stop the Dev App Pool when updating static files? Do I even need the Dev App Pool or the Main App Pool?

I got the impression that app pools are only tied to backend applications. That is, they are not needed to provide static files.

I've noticed that I can also stop the entire WebsiteX and deploy new releases without stopping app pools. What does it do to just close the connections but run all applications?

Web Development – Deploying Docker Containers for AWS EBS

I want to deploy an application that is included in some Docker containers to AWS Elastic Beanstalk. I'm having trouble getting that to work.

I'm new to Docker, so I have a few things that I do not quite understand. My main question, however, is that my application needs docker> = 19.03.1 and node> = 10.16.0, and the AMI that is supposed to run beanstalk only supports docker up to v18. I am not sure how to solve it.

What I've done so far to fix it: I created an ec2 instance based on Ubuntu (which supports Docker 19), installed the desired node and docker versions, and created an AMI based on that instance. I then use this in the instance configuration on Beanstalk as my AMI. However, I can not even start an environment with the sample application without an error. It states that no instances can be initialized.

I have read a lot of documentation for elastic beans, but am still not sure how to use them.

As a side note: I want to use this for a scalable application. If there are simpler ways to do this in a scalable way through AWS, I'd like to point that way.

posts – WordPress DataBase architecture for deploying and managing in the cloud

The WordPress DataBase architecture must be running in the cloud environment to improve CDN and website speed. I am a WP sysAdmin and the servers have been running cPanel WordPress since 2012 and distribute customer websites with Cloudflare CDN automatically. It's going well, but I'm launching WordPress Cloud and need photos, pictures, videos, VR projects, and other data available through Google API, Cloud, Google, Azure, AWS, DigitalOcean, Cloudways, and so on. Thank you very much.

Web Applications – What's the Lightest Web Framework for Deploying a Single Page App on Raspberry Pi?

I plan to install BalenaOS and run a small one-page web app from a Docker container. It only needs to provide static content because there is an API somewhere else. According to Balena documents, they provide images with Node.js, Python, Go, Java and Dotnet.

Which platform offers the lightest web frame fork?