FranckFreiburger / vue3-sfc-loader

Single File Component loader for Vue2 and Vue3. Load .vue files directly from your HTML. No node.js environment, no build step.
MIT License
1.03k stars 116 forks source link

use babel source instead of babel packages (@babel/*) #7

Open FranckFreiburger opened 3 years ago

FranckFreiburger commented 3 years ago

I would like to embed babel using source version (github.com/babel) instead of packaged version (npm @babel/*) in order to benefits of a better (webpack) tree-shaking (@babel/* is cjs whereas github.com/babel is mjs/ts) and to reduce final bundle size.

I need to make TypeScript to resolve any node_modules/@babel/* to node_modules/babel/packages/babel-*/src

I tried with compilerOptions.paths with no success :

    paths: {
        '@babel/code-frame': ['babel/packages/babel-code-frame/src'],
    }

Is there a trick to make any require to @babel/* to point to babel/packages/babel-*/src ?

BTW, In the webpack configuration file, I use:

resolve: {
    alias: {
        '@babel/code-frame': 'babel/backages/babel-code-frame/src',

and I'm looking for the equivalent for typescript.

Toilal commented 3 years ago

I think aliases should also be defined in tsconfig in this case.

https://dev.to/larswaechter/path-aliases-with-typescript-in-nodejs-4353

I'm not sure this kink of wildcard expression is supported though ...

FranckFreiburger commented 3 years ago

(AFAIK) TypeScript cannot import flow files. My only option is to wait the resolution of Migrate Babel from Flow to TypeScript PR.

related stackoverflow question