nuxt / typescript

TypeScript Support for Nuxt 2
https://typescript.nuxtjs.org
MIT License
569 stars 124 forks source link

@babel/plugin-transform-parameters not working correctly #519

Open dithom opened 3 years ago

dithom commented 3 years ago

Describe the bug When using babel in conjunction with nuxt typescript I run into an issue using @nuxt/babel-preset-env, which contains @babel/plugin-transform-parameters. Default parameters should be transpiled for compatibility with e.g. IE11 but in the resulting bundles they are still present:

... t.enc.Base64url={stringify:function(t,e=!0){ ... }} ... <= e=!0

and

... return o.join("")},parse:function(t,e=!0){ ... } ... <= e=!0

Edit: I could track the issue down to crypto-js beeing the source of the functions causing the problems.

To Reproduce My config is:

nuxt.config.js

build: {
  babel: {
    presets: [
      [
        '@nuxt/babel-preset-app',
        {
          ignoreBrowserslistConfig: true,
        },
      ],
    ],
  },
},

tsconfig.json

{
  "compilerOptions": {
    "target": "ES2018",
    "module": "ESNext",
    "moduleResolution": "Node",
    "lib": [
      "ESNext",
      "ESNext.AsyncIterable",
      "DOM"
    ],
    "esModuleInterop": true,
    "allowJs": true,
    "sourceMap": true,
    "strict": true,
    "noEmit": true,
    "experimentalDecorators": true,
    "baseUrl": ".",
    "paths": {
      "~/*": [
        "./*"
      ],
      "@/*": [
        "./*"
      ]
    },
    "types": [
      "@nuxt/types",
      "@types/node",
      "@nuxtjs/axios"
    ]
  },
  "exclude": [
    "node_modules",
    ".nuxt",
    "dist"
  ]
}

Expected behavior Default parameters should be transpiled correctly

... t.enc.Base64url={stringify:function(t,e){ ... }} ...

Additional context I could not track down the source of these functions yet, but I'm using:

nathanhae commented 1 year ago

@dithom did you ever figure this out?

rchl commented 1 year ago

Doesn't sound like something specific to this module. Nuxt by default doesn't transpile dependencies from node_modules so if you want to transpile crypto-js, for example, you have to manually tell Nuxt to do it with something like this in Nuxt config:

    build: {
        transpile: [
            '/crypto-js/',
        ],
    },