Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Installation errors running CLI #1368

Open
jakelauer opened this issue Mar 6, 2020 · 16 comments
Open

Installation errors running CLI #1368

jakelauer opened this issue Mar 6, 2020 · 16 comments

Comments

@jakelauer
Copy link

protobuf.js version: 6.8.8

Expected: Protobufjs runs and installs dependencies
Actual: Protobufjs fails to install dependencies

installing jsdoc@^3.5.5
installing uglify-js@^3.3.25
installing espree@^3.5.4
child_process.js:669
    throw err;
    ^
Error: Command failed: npm --silent install jsdoc@^3.5.5 uglify-js@^3.3.25 espree@^3.5.4
    at checkExecSyncError (child_process.js:630:11)
    at Object.execSync (child_process.js:666:15)
    at modInstall (D:\Project\node_modules\protobufjs\cli\util.js:129:19)
    at Object.exports.setup (D:\Project\node_modules\protobufjs\cli\util.js:156:5)
    at Object.<anonymous> (D:\Project\node_modules\protobufjs\cli\pbjs.js:7:6)
    at Module._compile (internal/modules/cjs/loader.js:1157:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1177:10)
    at Module.load (internal/modules/cjs/loader.js:1001:32)
    at Function.Module._load (internal/modules/cjs/loader.js:900:14)
    at Module.require (internal/modules/cjs/loader.js:1043:19) {

Any ideas for how to mitigate this?

@jakelauer
Copy link
Author

Note: We have multiple machines failing with this error

@jakelauer jakelauer reopened this Mar 6, 2020
@create-share
Copy link

create-share commented Mar 10, 2020

The CLI and the browser runtime source code are in one package. Most people are only using protobuf.js for their runtime dep. For providing a smaller installed size, the author does not install the CLI's dependencies by default. Only when the CLI is used will it check whether it's dependencies were installed. If not, it will start a child process to install them. The child process would execute an npm install ... command. But that may cause problems such as insufficient permissions in system or failed to find NPM due to environment variables.

@jakelauer
Copy link
Author

Is there a mitigation for this? We tried including the libraries in our own package.json but it still installs them anyway.

@create-share
Copy link

create-share commented Mar 10, 2020

Is there a mitigation for this? We tried including the libraries in our own package.json but it still installs them anyway.

Because the libraries are installed in <root>/cli/node_modules instead of <root>/node_modules. You could remove the <root>/cli/package.json and remove the .setup() caller.

https://github.com/protobufjs/protobuf.js/blob/master/cli/pbjs.js#L7
https://github.com/protobufjs/protobuf.js/blob/master/cli/pbts.js#L8

@jakelauer
Copy link
Author

I don't have the option to modify the files inside node_modules as this issue is happening during build on a machines that run npm install for every build.

@cainiaokan
Copy link

This is so annoying. Installing packages dynamically!? it should be avoided.

@jakelauer
Copy link
Author

jakelauer commented Apr 19, 2020

Agreed @cainiaokan . It's easy to avoid because NPM is specifically built the way it's built to avoid things like this.

@ssilve1989
Copy link

ssilve1989 commented Jul 13, 2020

This is so annoying. Installing packages dynamically!? it should be avoided.

Any update on this? That is 100% accurate in that it should be avoided

@papirosko
Copy link

add espree@^3.5.4 to devDependencies manually and try again

@papirosko
Copy link

  "devDependencies": {
    ...
    "estraverse": "^5.1.0",
    "protobufjs": "^6.10.1",
    "estraverse": "^5.1.0",
    "semver": "^7.1.2",
    "uglify-js": "^3.7.7",
    "tmp": "^0.2.0",
    "chalk": "^4.0.0",
    "jsdoc": "^3.6.3"
    ... 
   }

@dreamerblue
Copy link

Any update?

@jakelauer
Copy link
Author

It looks like there's a PR that could fix this by divorcing the CLI from the main package. Last updated 3 days ago: #1234

@Somepub
Copy link

Somepub commented Nov 26, 2021

Same problem with version 6.11.2. installing jsdoc@^3.6.3 installing uglify-js@^3.7.7

@github-mickael-leclerc
Copy link

Does not happen on version 6.11.2 under node 14.17. I fixed my issue by bumping node (was 10) + protobufjs (was 6.8.8).

lorensr added a commit to temporalio/samples-typescript that referenced this issue Apr 3, 2022
Was having this error during building:
protobufjs/protobuf.js#1368
lorensr added a commit to temporalio/samples-typescript that referenced this issue Apr 3, 2022
* Update to 0.19.0

* Update update script

* Revert "Update to 0.19.0"

This reverts commit 7edc75e.

* Non-mono

* Mono

* Fix build

* Fix linting

* Update interceptors version

* Add protobuf sample

* Add generated files to .gitignore

* README and prettier

* Fix proto build

Was having this error during building:
protobufjs/protobuf.js#1368
@lorensr
Copy link

lorensr commented Apr 3, 2022

Fixed for me with npm i -D installing jsdoc@^3.6.3

@Chance722
Copy link

Chance722 commented May 5, 2022

Any solution? Now I fixed it by npm i -D installing jsdoc@^3.6.3 uglify-js@^3.3.25 espree@^3.5.4 escodegen@^1.9.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants