Lodash conflict issues

Description
I’m running into errors using the WebSDK due to a lodash conflict posed by another script (Coveo search) loading AFTER the zoom lodash dependency which has its own custom lodash build baked into it. The specific error i’m seeing is “_.isNil() is not a function” when running the ZoomMtg.join() method. So what’s essentially happening is this:

  1. Zoom loads it’s lodash dependency, exposing a global _ object.
  2. Our Coveo script loads in at the end of the body and overwrites Zoom’s _ object with it’s own _ object (which doesn’t contain the _.isNil method.
  3. When Zoom runs it’s ZoomMtg.init() and ZoomMtg.join() methods, it’s accessing the Coveo lodash object and throwing the “_.isNil() is not a function” error because the Coveo lodash build doesn’t contain the .isNil function.

I know that Lodash comes with a _.noConflict method that can be leveraged to solve cases like this, but because we’re using CDN dependencies from both Zoom and Coveo, I can’t modify one or the other to make this work.

Are you aware of any ways to solve for this? Coveo is loaded into every page on our site and we can’t really remove it or we won’t have search functionality.

Any ideas would be appreciated!

Which Web Meeting SDK version?
1.9.9

UPDATE:

It looks like Coveo has released a newer version which comes with it’s own noConflict method for addressing conflicts with other libraries! So consider this issue solved :slight_smile: . However, I would recommend that Zoom team leverage the _.noConflict method provided by lodash in any files where lodash is being leveraged in the ZoomMtg scripts so that conflicts with other libraries using lodash are avoided and Zoom’s lodash builds are used proprietarily for Zoom code.

1 Like

Hey @mattmcd,

Thank you for reaching out to the Zoom Developer Forum. I’m glad to hear that you got this sorted out! Thank you for sharing what worked for you, I’m thinking this will solve another ticket that I have open as well.

I’ll pass on this recommendation to our engineering team to see if we can improve this in the future.

I’ll go ahead and close this topic now but feel free to open a new topic if you encounter any further issues or questions.

Thanks,
Max

1 Like