Expected behavior:
require 'shakapacker' shouldn't have side effects.
Actual behavior:
It creates public/webpack/{test,development,production} depending on NODE_ENV.
require('shakapacker') eagerly loads environments/base.js, which calls getPlugins() at module load time, which calls ensureManifestExists(), which calls mkdirSync(public/webpack/test).
Small, reproducible repo:
Setup environment:
- Ruby version: 3.3.7
- Rails version: 8.0.4.1
- Shakapacker version: 10.0.0
Expected behavior:
require 'shakapacker'shouldn't have side effects.Actual behavior:
It creates
public/webpack/{test,development,production}depending onNODE_ENV.require('shakapacker')eagerly loadsenvironments/base.js, which callsgetPlugins()at module load time, which callsensureManifestExists(), which callsmkdirSync(public/webpack/test).Small, reproducible repo:
Setup environment: