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

npm install fails on win10 #122

Open
keyiis opened this issue Sep 14, 2020 · 12 comments
Open

npm install fails on win10 #122

keyiis opened this issue Sep 14, 2020 · 12 comments

Comments

@keyiis
Copy link

keyiis commented Sep 14, 2020

I want inatall on win10 x64,but failed

PS D:\code\server> npm install pulsar-client -S

> pulsar-client@1.2.0 install D:\code\server\node_modules\pulsar-client
> node-pre-gyp install --fallback-to-build

node-pre-gyp WARN Using request for node-pre-gyp https download 
node-pre-gyp WARN Tried to download(404): https://pulsar.apache.org/docs/en/client-libraries-cpp/libpulsar-v1.2.0-node-v72-win32-x64.tar.gz 
node-pre-gyp WARN Pre-built binaries not found for pulsar-client@1.2.0 and node@12.14.0 (node-v72 ABI, unknown) (falling back to source compile with node-gyp) 
gyp: codezhidaoservernode_modulesnode-addon-apisrcnode_api.gyp not found (cwd: D:\code\server\node_modules\pulsar-client) while loading dependencies of binding.gyp while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\configure.js:351:16)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Windows_NT 10.0.18363
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--fallback-to-build" "--module=D:\\code\\zhidao\\server\\node_modules\\pulsar-client\\build\\Release\\libpulsar.node" "--module_name=libpulsar" "--module_path=D:\\code\\zhidao\\server\\node_modules\\pulsar-client\\build\\Release" "--napi_version=5" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72" "--python=C:\\Users\\Administrator\\.windows-build-tools\\python27\\python.exe"
gyp ERR! cwd D:\code\server\node_modules\pulsar-client
gyp ERR! node -v v12.14.0
gyp ERR! node-gyp -v v5.0.5
gyp ERR! not ok
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=D:\code\server\node_modules\pulsar-client\build\Release\libpulsar.node --module_name=libpulsar --module_path=D:\code\server\node_modules\pulsar-client\build\Release --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72 --python=C:\Users\Administrator\.windows-build-tools\python27\python.exe' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (D:\code\zhidao\server\node_modules\node-pre-gyp\lib\util\compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Windows_NT 10.0.18363
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "D:\\code\\server\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd D:\code\server\node_modules\pulsar-client
node-pre-gyp ERR! node -v v12.14.0
node-pre-gyp ERR! node-pre-gyp -v v0.12.0
node-pre-gyp ERR! not ok
Failed to execute 'C:\Program Files\nodejs\node.exe C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js configure --fallback-to-build --module=D:\code\server\node_modules\pulsar-client\build\Release\libpulsar.node --module_name=libpulsar --module_path=D:\code\server\node_modules\pulsar-client\build\Release --napi_version=5 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72 --python=C:\Users\Administrator\.windows-build-tools\python27\python.exe' (1)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules\nodemon\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pulsar-client@1.2.0 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the pulsar-client@1.2.0 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Administrator\AppData\Roaming\npm-cache\_logs\2020-09-14T09_39_54_031Z-debug.log
@keyiis
Copy link
Author

keyiis commented Sep 17, 2020

Do you have a plan to solve the problem?

@massakam
Copy link

The Node.js client library does not support Windows. At least we haven't verified that it can be installed and built on Windows.

This npm package depends on Pulsar C++ client library, so the important thing is whether the C++ client works on Windows. According to Pulsar's official documentation, the C++ client only supports Linux and MacOS.
https://pulsar.apache.org/docs/en/client-libraries-cpp/

However, the README describes how to build the C++ client on Windows. I have never tried this.
https://github.com/apache/pulsar/blob/master/pulsar-client-cpp/README.md

@munir131
Copy link

@massakam It is even failing on Linux too - streamnative#81

@koshkarov
Copy link

This was the biggest reason why we decided not to use Apache Pulsar and favored Apache Kafka, as our whole team uses Windows laptops as dev machines.

@osbornm
Copy link

osbornm commented Sep 20, 2021

Can we get an update on this from a maintainer? Will the node client ever work on windows? This might be a show stopper for us 😢

@sijie
Copy link
Member

sijie commented Sep 21, 2021

@osbornm I believe we are able to build the nodejs client after this PR: #169

Have you tried to build the client from the latest master? Or are you looking for a released binary for Windows?

@osbornm
Copy link

osbornm commented Sep 21, 2021

@sijie What I want to do is be able to go into our node API project and npm install pulsar-client. So yes I would want released binaries for Windows.

I'd like to have a clean experience, clone > npm install > npm start, for our developers (both win and macOS).

@gaoran10
Copy link
Contributor

gaoran10 commented Sep 22, 2021

@osbornm Could you build the NodeJS client follow this README file https://github.com/apache/pulsar-client-node? I think the key point is to build the CPP client on windows first.

@osbornm
Copy link

osbornm commented Sep 22, 2021

@gaoran10 I can and have got the node client to build local after pulling down the c++ library building and setting the ENV.

This is tangential to the problem I have though. I want to be able to go into my own node project, say an API I am building, install the node client via npm (npm install pulsar-client), make some changes to the API to produce messages, commit to my project, and then be able to have another developer pull down that project on a windows machine and simply run npm install to restore packages and not have to jump through a bunch of hoops (cloning repositories and building c++ projects).

IMHO, the solution is to have this project publish the c++ binaries. You can see from the following output that npm/node-gyp is trying to fetch the prebuilt.

node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Tried to download(404): https://pulsar.apache.org/docs/en/client-libraries-cpp/libpulsar-v1.3.1-node-v83-win32-x64.tar.gz
node-pre-gyp WARN Pre-built binaries not found for pulsar-client@1.3.1 and node@14.17.3 (node-v83 ABI, unknown) (falling back to source compile with node-gyp)

@massakam
Copy link

IMHO, the solution is to have this project publish the c++ binaries. You can see from the following output that npm/node-gyp is trying to fetch the prebuilt.

Unfortunately, there are no plans to publish pre-built C++ binaries at this time. Building and publishing binaries for different operating systems, NODE_MODULE_VERSIONs, and instruction set architectures can be costly.

@shibd
Copy link
Member

shibd commented Jan 4, 2023

After version 1.8.0, you can easily use this command to install to windows systems: npm install pulsar-client@1.8.0, and you no longer need to install the CPP client first.

@dima007arenko
Copy link

dima007arenko commented Nov 24, 2023

@shibd I'm still facing this issue :(

Pre-built binaries not installable for pulsar-client@1.8.0

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

No branches or pull requests

9 participants