webpack-contrib / val-loader

val loader module for webpack
MIT License
185 stars 29 forks source link

ESM target file support #80

Open RyanClementsHax opened 3 years ago

RyanClementsHax commented 3 years ago

Feature Proposal

Feature Use Case

After careful searching of the web, it seems that val-loader does not support target files expressed as esm. What do you think about adding this ability? In short, it would allow us to express target files as such:

export default (options, loaderContext) => {
  return { code: "module.exports = 42;" };
};

Right now it fails with the following error Unable to execute "<the file name>": SyntaxError: Unexpected token 'export'

I tried to find if any related work has been done on this before submitting this request and the closest seems to be this issue https://github.com/webpack-contrib/val-loader/issues/13 for reference

Please paste the results of npx webpack-cli info here, and mention other relevant information

System: OS: Linux 4.19 Ubuntu 20.04.1 LTS (Focal Fossa) CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz Memory: 1.49 GB / 7.72 GB Binaries: Node: 16.13.0 - ~/.nvm/versions/node/v16.13.0/bin/node Yarn: 3.1.0 - ~/.nvm/versions/node/v16.13.0/bin/yarn npm: 8.1.0 - ~/.nvm/versions/node/v16.13.0/bin/npm Packages: css-loader: ^6.5.0 => 6.5.0 postcss-loader: ^6.1.1 => 6.2.0 sass-loader: ^12.3.0 => 12.3.0 style-loader: ^3.3.1 => 3.3.1 val-loader: ^4.0.0 => 4.0.0 webpack: ^5.60.0 => 5.60.0

alexander-akait commented 3 years ago

Because it is not supported by Node.js https://nodejs.org/api/vm.html#class-vmmodule, experimental

alexander-akait commented 3 years ago

Shorty - we don't have ability to evaluate ESM on Node.js side right now

RyanClementsHax commented 3 years ago

Ah thanks! I wasn't aware esm in node was experimental. My bad.

alexander-akait commented 3 years ago

We can keep this open until it was will be stable

grewem-elm commented 1 year ago

It is Stable now -> https://nodejs.org/api/esm.html

alexander-akait commented 1 year ago

Great, it is not very priority right now, if anyone wants to send a PR - welcome

dreyks commented 1 week ago

i think we still need to wait till vm.Module becomes stable because that's what we need to execute an ES module in webpack's context

alexander-akait commented 1 week ago

I am fine to accept pr