Skip to content
This repository has been archived by the owner on Sep 16, 2023. It is now read-only.

isModuleDeclaration has been deprecated #259

Open
eleven-net-cn opened this issue Feb 21, 2023 · 14 comments · Fixed by sigmacomputing/babel-plugin-lodash#1 · May be fixed by #261
Open

isModuleDeclaration has been deprecated #259

eleven-net-cn opened this issue Feb 21, 2023 · 14 comments · Fixed by sigmacomputing/babel-plugin-lodash#1 · May be fixed by #261

Comments

@eleven-net-cn
Copy link

image

babel/babel#15266

@babel/types v7.21.0, isModuleDeclaration has been deprecated, the terminal has the following warning.

Trace: `isModuleDeclaration` has been deprecated, please migrate to `isImportOrExportDeclaration`.
@qqjay2017
Copy link

me too , what can i do to fix it

@sggvision
Copy link

Same here

@llxsgdsg
Copy link

me too

@char0n
Copy link

char0n commented Feb 21, 2023

The workaround for this issue (until it's fixed in babel-plugin-lodash) , you have to do the following modification in you babel.config.js file:

/**
 * This is override for https://github.com/lodash/babel-plugin-lodash/issues/259.
 * babel-plugin-lodash is using deprecated babel API, which causes generation of many
 * console.trace calls.
 */

const consoleTrace = console.trace.bind(console);
console.trace = (message, ...optionalParams) => {
  if (
    typeof message === 'string' &&
    message.startsWith('`isModuleDeclaration` has been deprecated')
  ) {
    return undefined; // noop
  }

  return consoleTrace(message, ...optionalParams);
};

module.exports = {
  ...babel-config...
}

@samuelslva-jlfs
Copy link

samuelslva-jlfs commented Feb 21, 2023

or if you use yarn, in package.json:

{
   // [...]
   "resolutions": {
    "babel-plugin-lodash/@babel/types": "~7.20.0"
  }
}

EDIT: if you use NPM use this instead on your package.json (I guess, according to the docs)

{
   // [...]
  "overrides": {
    "babel-plugin-lodash": {
      "@babel/types": "~7.20.0"
    }
  }
}

EDIT2: Be careful with this solution this will lock you forever on an old @babel/types version, right now its fine as we wait for babel/babel#15448 be released and we're a single minor behind, but don't rely on this forever, there might be security/performance improvements on babel (unless when remove the deprecated method outright then locking will be the only option), the real solution would be this project updating the deprecated reference, both mine and @char0n's solutions are palliatives. Stay on top of this issue to either replace this (seemly abandoned) library, or get a new version of this that doesn't need the version locking or warning clobbering

@eleven-net-cn
Copy link
Author

or if you use yarn, in package.json:

{
   // [...]
   "resolutions": {
    "babel-plugin-lodash/@babel/types": "~7.20.0"
  }
}

EDIT: if you use NPM use this instead on your package.json (I guess, according to the docs)

{
   // [...]
  "overrides": {
    "babel-plugin-lodash": {
      "@babel/types": "~7.20.0"
    }
  }
}

It works fine with npm

@char0n
Copy link

char0n commented Feb 22, 2023

Yep npm overrides is a good solution as well, but be sure to be using npm >= 8.3.0. Earlier versions of npm don't support overrides.

@miqdadfwz
Copy link

If you are using pnpm, you can use this instead

 "pnpm": {
    "overrides": {
      "babel-plugin-lodash>@babel/types": "~7.20.0"
    }
  }

@justtoconfirm
Copy link

justtoconfirm commented Jun 6, 2023

I'm using gatsby@5.10.0 that looks to have babel-plugin-lodash@3.3.4 as a dependency package and I'm getting this issue as a warning when I run npm run develop. I've attempted to update the package.json file as mentioned previously, but this hasn't worked.

Is there an expected fix for this? Looks like a PR is open but has not been approved/merged: #261

@Semigradsky
Copy link

Semigradsky commented Jun 6, 2023

This plugin looks unmaintained. Can anyone publish a fork with fix?

UPD: @sigmacomputing/babel-plugin-lodash

@arsinclair
Copy link

Forking is the worst option, since it doesn't solve the issue for the ecosystem that relies on the plugin (e.g. GatsbyJS). I think we should as much as possible try to draw the attention of maintainers here. There seems to be an easy fix for the issue.

@jdalton @mathiasbynens @veksen any thoughts?

@ThiefMaster
Copy link

I'd also love to see an update - the warning is harmless (so far, dunno when the deprecated object gets removed for good) but nonetheless annoying.

@kirkstrobeck
Copy link

Note the warning in #259 (comment)

It’s best to just set this in your package.json deps

{
  "devDependencies": {
    "@babel/core": "~7.20.0",
  }
}

update the dep later

yingziwu added a commit to yingziwu/mastodon that referenced this issue Aug 21, 2023
yingziwu added a commit to yingziwu/mastodon that referenced this issue Aug 21, 2023
@gknapp
Copy link

gknapp commented Sep 6, 2023

Note the warning in #259 (comment)

It’s best to just set this in your package.json deps

{
  "devDependencies": {
    "@babel/core": "~7.20.0",
  }
}

update the dep later

I found just installing @babel/types to the latest 7.20 release silenced this message (I am tied to node v14 for a previous product release):

{
  "devDependencies": {
    "@babel/types": "7.20.7"
  }
}

I am able to use the latest @babel/core with this installed (time of writing 7.22.15).

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.