create-snowpack-app icon indicating copy to clipboard operation
create-snowpack-app copied to clipboard

redundant files in build directory after bundling

Open danprince opened this issue 4 years ago • 2 comments

It looks like the bundling step from @snowpack/plugin-parcel doesn't do any kind of cleanup after bundling, so the build directory ends up containing the bundled/fingerprinted assets and the original output from snowpack build.

I think it'd make more sense to file this issue wherever that plugin code lives, but I can't find the repo!

{
  "scripts": {
    "mount:public": "mount public --to /",
    "mount:src": "mount src --to /_dist_"
  },
  "plugins": [
    "@snowpack/plugin-parcel"
  ]
}

Produces something like:

src/
  index.js      # original source
build/
  web_modules/
  _dist_/
    index.js           # this is the index.js with rewritten web_modules paths
  _dist_.a45130ae.js   # this is the bundled file

After bundling, I want to deploy the build dir, but I don't really want to deploy build/web_modules or build/_dist_ because they aren't going to be used.

Ideally the bundling plugins would output the bundled version to a separate directory (I think Parcel already does this with a .build directory) then clean build and copy the contents across.

danprince avatar Jun 11 '20 15:06 danprince

No worries, moving to the proper repo

FredKSchott avatar Jun 11 '20 16:06 FredKSchott

Yup, this is expected behavior for now (there's no way right now to tell what was and wasn't bundled after the bundler ran, so we default to include everything).

We should add a feature to the plugin to analyze which files were included in the final bundle, and delete them from the build directory. I think that there are straightforward Webpack hooks that we can hook into for this, but I'm not sure about Parcel.

FredKSchott avatar Jun 11 '20 16:06 FredKSchott