nikushi / minipack

Minipack, a gem for minimalists, which can integrates Rails with webpack. It is an alternative to Webpacker.
MIT License
115 stars 22 forks source link

Gem doesn't work with webpack-assets-manifest #39

Open Szeliga opened 3 years ago

Szeliga commented 3 years ago

The webpack plugin suggested in the readme creates a different structure than minipack expects.

What is being generated

{
  "entrypoints": {
    "main": {
      "assets": {
        "js": [
          "static/js/bundle.js",
          "static/js/0.chunk.js",
          "static/js/main.chunk.js"
        ],
        "js.map": [
          "static/js/bundle.js.map",
          "static/js/0.chunk.js.map",
          "static/js/main.chunk.js.map"
        ]
      }
    }
  },
  "main.js": "static/js/main.chunk.js",
  "main.js.map": "static/js/main.chunk.js.map",
  "runtime-main.js": "static/js/bundle.js",
  "runtime-main.js.map": "static/js/bundle.js.map",
  "static/js/0.chunk.js": "static/js/0.chunk.js",
  "static/js/0.chunk.js.map": "static/js/0.chunk.js.map",
  "static/js/1.chunk.js": "static/js/1.chunk.js",
  "static/js/1.chunk.js.map": "static/js/1.chunk.js.map",
  "static/media/logo.svg": "static/media/logo.6ce24c58.svg"
}

What minipack expects:

{
  "entrypoints": {
    "main": {
      "js": [
        "static/js/bundle.js",
        "static/js/0.chunk.js",
        "static/js/main.chunk.js"
      ],
      "js.map": [
        "static/js/bundle.js.map",
      "static/js/0.chunk.js.map",
      "static/js/main.chunk.js.map"
      ]
    }
  },
  "main.js": "static/js/main.chunk.js",
  "main.js.map": "static/js/main.chunk.js.map",
  "runtime-main.js": "static/js/bundle.js",
  "runtime-main.js.map": "static/js/bundle.js.map",
  "static/js/0.chunk.js": "static/js/0.chunk.js",
  "static/js/0.chunk.js.map": "static/js/0.chunk.js.map",
  "static/js/1.chunk.js": "static/js/1.chunk.js",
  "static/js/1.chunk.js.map": "static/js/1.chunk.js.map",
  "static/media/logo.svg": "static/media/logo.6ce24c58.svg"
}

The plugin nests entries in an additional assets key which isn't where the Manifest class looks - https://github.com/nikushi/minipack/blob/master/lib/minipack/manifest.rb#L53-L57

Szeliga commented 3 years ago

I've prepared a pull request that proposes a way to solve this.