box / box-node-sdk

A Javascript interface for interacting with the Box API. You can find the node package at
https://www.npmjs.com/package/box-node-sdk
Apache License 2.0
188 stars 121 forks source link

Compilation issues with box-node-sdk, webpack, and proxy-agent #766

Closed taylorreece closed 1 year ago

taylorreece commented 2 years ago

Description of the Issue

Hi Box team, I'm struggling to compile a project that includes box-node-sdk with webpack, and I'm looking to see if you have any guidance or insight.

My project previously used 1.33.0, which compiled fine. Any version after that (1.34.0 up to latest 2.6.0) fails to compile. I've put together a minimal repro here: https://github.com/taylorreece/box-webpack-issue . If you bring the box-node-sdk version down to 1.33.0, you can npm install && npm run build fine. If you have any version past 1.33.0, compilation fails with this error:

ERROR in ./node_modules/source-map/lib/binary-search.js
Self-reference dependency has unused export name: This should not happen
Error: Self-reference dependency has unused export name: This should not happen
    at CommonJsSelfReferenceDependencyTemplate.apply (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/dependencies/CommonJsSelfReferenceDependency.js:102:10)
    at JavascriptGenerator.sourceDependency (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/javascript/JavascriptGenerator.js:206:12)
    at JavascriptGenerator.sourceModule (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/javascript/JavascriptGenerator.js:112:9)
    at JavascriptGenerator.generate (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/javascript/JavascriptGenerator.js:98:8)
    at NormalModule.codeGeneration (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/NormalModule.js:1204:22)
    at /Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/Compilation.js:3326:22
    at /Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/Cache.js:93:5
    at Hook.eval [as callAsync] (eval at create (/Users/treece/Desktop/box-webpack-issue/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)
    at Cache.get (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/Cache.js:75:18)
    at ItemCacheFacade.get (/Users/treece/Desktop/box-webpack-issue/node_modules/webpack/lib/CacheFacade.js:111:15)
 @ ./node_modules/source-map/lib/source-map-consumer.js 9:19-45
 @ ./node_modules/source-map/source-map.js 7:0-82
 @ ./node_modules/escodegen/escodegen.js 2571:29-61
 @ ./node_modules/degenerator/dist/src/index.js 3:20-40
 @ ./node_modules/pac-resolver/dist/index.js 6:22-44
 @ ./node_modules/pac-proxy-agent/dist/agent.js 26:39-62
 @ ./node_modules/pac-proxy-agent/dist/index.js 7:32-50
 @ ./node_modules/proxy-agent/index.js 16:20-46
 @ ./node_modules/box-node-sdk/lib/util/config.js 125:25-47
 @ ./node_modules/box-node-sdk/lib/box-node-sdk.js 59:13-37
 @ ./src/index.ts 1:0-34 2:16-22

It seems like it's related to the addition of the proxy-agent dependency, introduced in 1.34.0.

I really appreciate any insight you have - thanks!

Steps to Reproduce

Expected Behavior

Successful compiliation

Versions Used

Node SDK: 1.34.0 - 2.6.0 Node version: 16.15.1 NPM version: 8.11.0

mhagmajer commented 1 year ago

Thanks for posting the issue. Let us investigate that and get back to you when we have more information

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not been updated in the last 30 days. It will be closed if no further activity occurs within the next 7 days. Feel free to reach out or mention Box SDK team member for further help and resources if they are needed.

taylorreece commented 1 year ago

This issue still affects us, and we're stuck on 1.33.0 until we can use the box SDK with webpack. Bumping to keep this open.

arjankowski commented 1 year ago

Hi @taylorreece , I'm closing this issue since box-node-sdk was not originally intended to be used in front-end applications, and we are not going to change this in the current version of the sdk.

However, we are intensively working on a new, refreshed version of our SDK, and we put our main emphasis on development there. So we are going to consider adding webpack support there.

taylorreece commented 1 year ago

👍 It's not for a frontend app, but for an application connector on the Prismatic platform (https://prismatic.io/docs/components/box/), but point taken. I'm excited for the refreshed version of the SDK!

Have a great holiday season!

taylorreece commented 1 year ago

If anyone else comes across this, it appears that you can safely add this to your webpack config to ignore the error:

optimization: {
    sideEffects: false,
},