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

Electron + Angular + node-pty missing file when compile #337

Closed
namdien177 opened this issue Aug 2, 2019 · 4 comments
Closed

Electron + Angular + node-pty missing file when compile #337

namdien177 opened this issue Aug 2, 2019 · 4 comments
Labels

Comments

@namdien177
Copy link

Environment details

  • OS: Windows 10
  • OS version: 1903 (build 18362.239)
  • node-pty version: 0.9.0-beta19
  • node version: 12.7.0
  • Angular-cli version: 8.0.0
  • Electron version: 5.0.2

Issue description

I'm using Electron + Angular (clone from https://github.com/maximegris/angular-electron) and I want to implement a simple terminal within the application. Currently I have successfully installed node-pty (after 2 days of struggling) without error (it does show warnings though).

npm install node-pty@0.9.0-beta19 --save

However when I use hot reload, Angular seems can't compile the package as there are some missing packages ??

Date: 2019-08-02T17:52:29.936Z
Hash: 6b9b2529ffe76251176a
Time: 19595ms
chunk {features-repositories-repositories-module} features-repositories-repositories-module.js, features-repositories-repositories-module.js.map (features-repositories-repositories-module) 583 kB [rendered]
chunk {main} main.js, main.js.map (main) 202 kB [initial] [rendered]
chunk {polyfills} polyfills.js, polyfills.js.map (polyfills) 307 kB [initial] [rendered]
chunk {polyfills-es5} polyfills-es5.js, polyfills-es5.js.map (polyfills-es5) 462 kB [initial] [rendered]
chunk {runtime} runtime.js, runtime.js.map (runtime) 8.82 kB [entry] [rendered]
chunk {scripts} scripts.js, scripts.js.map (scripts) 407 kB [entry] [rendered]
chunk {styles} styles.js, styles.js.map (styles) 2.11 MB [initial] [rendered]
chunk {vendor} vendor.js, vendor.js.map (vendor) 5.43 MB [initial] [rendered]

WARNING in ./node_modules/node-pty/build/Release/conpty.node 1:2
Module parse failed: Unexpected character '�' (1:2)
You may need an appropriate loader to handle this file type.
(Source code omitted for this binary file)

ERROR in ./node_modules/node-pty/lib/windowsPtyAgent.js
Module not found: Error: Can't resolve '../build/Debug/conpty.node' in 'D:\Projects\School_topup\final-pj\node_modules\node-pty\lib'
ERROR in ./node_modules/node-pty/lib/unixTerminal.js
Module not found: Error: Can't resolve '../build/Debug/pty.node' in 'D:\Projects\School_topup\final-pj\node_modules\node-pty\lib'
ERROR in ./node_modules/node-pty/lib/windowsPtyAgent.js
Module not found: Error: Can't resolve '../build/Debug/pty.node' in 'D:\Projects\School_topup\final-pj\node_modules\node-pty\lib'
ERROR in ./node_modules/node-pty/build/Release/pty.node 1:2
Module parse failed: Unexpected character '�' (1:2)
You may need an appropriate loader to handle this file type.
(Source code omitted for this binary file)
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
i 「wdm」: Failed to compile.

Checking node-pty in node_modules, I don't see any debug folder in build.
image

I did try to rebuild electron (electron-rebuild), re-installing package multiple times (did delete package-lock.json).

Can anyone please help me with this?

@namdien177
Copy link
Author

#326 is this error related to this issue?
if it's then is there any workaround I wonder?

@Tyriar
Copy link
Member

Tyriar commented Aug 2, 2019

It's related to that yeah, you're probably compiling it to the wrong arch so it's not loading the Release version. Can you comment out to try/catch where it's loading it (inside node_modules/node-pty) and check the error?

if (this._useConpty) {
if (!conptyNative) {
try {
conptyNative = require('../build/Release/conpty.node');
} catch (err) {
conptyNative = require('../build/Debug/conpty.node');
}
}
} else {

@namdien177
Copy link
Author

It's related to that yeah, you're probably compiling it to the wrong arch so it's not loading the Release version. Can you comment out to try/catch where it's loading it (inside node_modules/node-pty) and check the error?

if (this._useConpty) {
if (!conptyNative) {
try {
conptyNative = require('../build/Release/conpty.node');
} catch (err) {
conptyNative = require('../build/Debug/conpty.node');
}
}
} else {

Yes, I just did it and the errors disappeared. Thank you very much.

By the way, is electron suppose to compile node-pty even with binary? Am I doing anything wrong here?... As I know, some people encountered this (different package) and they can fix it but with webpack. Is it a must to have webpack?
image

@namdien177 namdien177 reopened this Aug 2, 2019
@Tyriar
Copy link
Member

Tyriar commented Aug 2, 2019

Electron must compile the binary, otherwise it won't be able to load. The error you're seeing is related to configuring webpack which I don't know too much about, I think you need to make webpack ignore it or declare it as an external or something.

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

No branches or pull requests

2 participants