How to publish [my own] npm package that can be invoked globally - node.js

I've published a new public node app via npm. (Note: This is clearly an alpha. Don't expect very good, much less perfection.) I'm unable to get it work as a global install.
https://www.npmjs.com/package/khutzpa
To test, I installed it globally with this:
npm install -g khutzpa
On macOS, that installs in /usr/local/lib/node_modules/khutzpa for me.
I expected to be able to execute it at this point from the command line like this:
khutzpa /usr/local/lib/node_modules/khutzpa/tests/fakeSite /openInBrowser
I cannot. When I run that line, I receive:
zsh: command not found: khutzpa
I have other packages installed globally that are found, including prettier and eslint.
If I run it via a full path to its index.js, it's happy and runs exactly like I'd expect.
node /usr/local/lib/node_modules/khutzpa/index.js /usr/local/lib/node_modules/khutzpa/tests/fakeSite /openInBrowser
That's the basic issue. Is there something additional I'm supposed to set up?
More info
index.js
I think all I need in package.json is the main entry, and I have that...
"main": "index.js",
You can see the index.js file in full here.
In that file, I'm doing a if (require.main === module) { check to see if it's used as a module, which might be an issue now (?), but that doesn't seem to explain why it's not found at all.
npx
If I run with...
npx khutzpa /usr/local/lib/node_modules/khutzpa/tests/fakeSite /openInBrowser
I receive...
npm ERR! could not determine executable to run
There's not a lot more info in the log it creates afaict.
34 verbose stack Error: could not determine executable to run
34 verbose stack at getBinFromManifest (/usr/local/lib/node_modules/npm/node_modules/libnpmexec/lib/get-bin-from-manifest.js:17:23)
34 verbose stack at exec (/usr/local/lib/node_modules/npm/node_modules/libnpmexec/lib/index.js:114:15)
34 verbose stack at async module.exports (/usr/local/lib/node_modules/npm/lib/cli.js:66:5)
35 verbose pkgid khutzpa#0.0.1-alpha
36 verbose cwd /usr/local/lib/node_modules/prettier
37 verbose Darwin 21.5.0
38 verbose argv "/usr/local/bin/node" "/usr/local/lib/node_modules/npm/bin/npm-cli.js" "exec" "--" "khutzpa" "/usr/local/lib/node_modules/khutzpa/tests/fakeSite" "/openInBrowser"
39 verbose node v16.15.0
40 verbose npm v8.5.5
41 error could not determine executable to run
42 verbose exit 1
as a require in another package
Just tried invoking as an include, and it seems to work okay, except that I have to use khutzpa.default to invoke it, which I didn't think I needed to do. Maybe a hint. I'mma googling.
But I...
Created a dir.
npm init -y
On command line in that dir ran npm install khutzpa
Inserted this code:
const khutzpa = require("khutzpa");
console.log(khutzpa);
khutzpa.default("/usr/local/lib/node_modules/khutzpa/tests/fakeSite", 3000, 1);
That works, though khutzpa("/usr/local/lib/node_modules/khutzpa/tests/fakeSite", 3000, 1); does not, so maybe an export issue?

Looks like there may have been two issues:
I needed a "sharp-exclamation" in my index.js file to let npm know where node is (?).
I needed a "bin" entry in package.json.
The best way to sum this is probably by pointing at this commit that fixed things.
Here's a summary in an image with a reasonably good alt description, I believe. I'll add some WinMerge reports in a bit:

Related

Failure with `builtins` while publishing to NPM

I have this failure trying to publish a package
npm ERR! builtins is not a function
Which comes from
37 verbose stack TypeError: builtins is not a function
37 verbose stack at validate (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/node_modules/npm-registry-fetch/node_modules/validate-npm-package-name/lib/index.js:55:3)
37 verbose stack at Result.setName (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/node_modules/npm-registry-fetch/node_modules/npm-package-arg/lib/npa.js:127:17)
37 verbose stack at new Result (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/node_modules/npm-registry-fetch/node_modules/npm-package-arg/lib/npa.js:119:10)
37 verbose stack at Function.resolve (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/node_modules/npm-registry-fetch/node_modules/npm-package-arg/lib/npa.js:56:15)
37 verbose stack at npa (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/node_modules/npm-registry-fetch/node_modules/npm-package-arg/lib/npa.js:26:18)
37 verbose stack at Function.pickRegistry (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/node_modules/npm-registry-fetch/lib/index.js:189:10)
37 verbose stack at Publish.exec (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/lib/commands/publish.js:107:33)
37 verbose stack at async module.exports (/home/runner/work/typeorm-seeding/typeorm-seeding/node_modules/npm/lib/cli.js:66:5)
Does someone have any idea? I could not found any info about this error.
Greetings!
Just in case someone else comes across this, I had the same exact issue (first time using node.js on a Windows machine). Not much out there that speaks to this problem, so the fix for me was to completely un-install Node - then reinstall it.
Then, this error went away.
I recently faced this problem and was stuck with this for three days.
With me, all my "node" and "npm" were up to date but all the commands with npm apart from the version check ie "npm -v" was giving me more or less the same error "builtins is not a function".
sol 1 - One can try to uninstall node and npm and then re-install from the fresh.
If that doesn't solve the problem and you are still getting the same error then try the next solution
sol 2 - Install yarn https://phoenixnap.com/kb/yarn-windows
Use yarn commands instead of "npm". The following link will help you find all the yarn commands equivalent to npm commands.
https://www.sitepoint.com/yarn-vs-npm/

Cannot install nestJs : "ERR_INVALID_OPT_VALUE" (re readableHighWaterMark)

I want to install NestJs/cli on ubuntu 16.4 using the following command,
npm install -g #nestjs/cli
but unfortunately I get this error
87 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "#nestjs/cli"
88 verbose node v11.12.0
89 verbose npm v6.7.0
90 error code ERR_INVALID_OPT_VALUE
91 error The value "false" is invalid for option "readableHighWaterMark"
92 verbose exit [ 1, true ]
Thank you for telling me what this error is and how I should fix it
I have found the error lies inside the node modules
The error is because the cache memory size is not working on large files
To fix on site, I edited one of node modules mentioned in the cache to larger MAX_MEM_SIZE which allows it to work. Still it is a dirty fix
My dirty fix was to edit inside
/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/cache.js
change
const MAX_MEM_SIZE = 5 * 1024 * 1024 // 5MB to become
const MAX_MEM_SIZE = 15 * 1024 * 1024 // 15MB my temp fix to allow large downloads
Now npm install nestjs/cli will work!!!

"Cannot read property 'match' of undefined" during Npm install

I encountered error during building Jenkins
Jenkins Log
Task :api:processResources
Task :api:classes
Task :web:nodeSetup
Task :web:npmSetup /var/lib/jenkins/workspace/hds_v2_docker/web/.gradle/npm/npm-v6.11.2/bin/npm
-> /var/lib/jenkins/workspace/hds_v2_docker/web/.gradle/npm/npm-v6.11.2/lib/node_modules/npm/bin/npm-cli.js
/var/lib/jenkins/workspace/hds_v2_docker/web/.gradle/npm/npm-v6.11.2/bin/npx
-> /var/lib/jenkins/workspace/hds_v2_docker/web/.gradle/npm/npm-v6.11.2/lib/node_modules/npm/bin/npx-cli.js
npm#6.11.2 added 430 packages from 832 contributors in 6.837s
Task :web:npmInstall FAILED npm ERR! Cannot read property 'match' of undefined
npm ERR! A complete log of this run can be found in: npm ERR!
/var/lib/jenkins/.npm/_logs/2019-10-16T01_11_20_594Z-debug.log
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':web:npmInstall'.
Process 'command '/var/lib/jenkins/workspace/hds_v2_docker/web/.gradle/npm/npm-v6.11.2/bin/npm''
finished with non-zero exit value 1
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it
incompatible with Gradle 6.0. Use '--warning-mode all' to show the
individual deprecation warnings. See
https://docs.gradle.org/5.0/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 33s
/var/lib/jenkins/.npm/_logs/2019-10-16T01_11_20_594Z-debug.log
17 silly saveTree │ ├─┬ clean-css#4.2.1
17 silly saveTree │ │ └── source-map#0.6.1
17 silly saveTree │ ├── commander#2.17.1
17 silly saveTree │ └── he#1.2.0
17 silly saveTree └─┬ loader-utils#0.2.17
17 silly saveTree ├── big.js#3.2.0
17 silly saveTree ├── emojis-list#2.1.0
17 silly saveTree └── json5#0.5.1
18 verbose stack TypeError: Cannot read property 'match' of undefined
18 verbose stack at tarballToVersion (/usr/local/lib/node_modules/npm/lib/install/inflate-shrinkwrap.js:87:20)
18 verbose stack at inflatableChild (/usr/local/lib/node_modules/npm/lib/install/inflate-shrinkwrap.js:99:22)
18 verbose stack at BB.each (/usr/local/lib/node_modules/npm/lib/install/inflate-shrinkwrap.js:55:12)
18 verbose stack at tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
18 verbose stack at Object.gotValue (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/reduce.js:155:18)
18 verbose stack at Object.gotAccum (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/reduce.js:144:25)
18 verbose stack at Object.tryCatcher (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/util.js:16:23)
18 verbose stack at Promise._settlePromiseFromHandler (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:512:31)
18 verbose stack at Promise._settlePromise (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:569:18)
18 verbose stack at Promise._settlePromiseCtx (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/promise.js:606:10)
18 verbose stack at _drainQueueStep (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:142:12)
18 verbose stack at _drainQueue (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:131:9)
18 verbose stack at Async._drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:147:5)
18 verbose stack at Immediate.Async.drainQueues (/usr/local/lib/node_modules/npm/node_modules/bluebird/js/release/async.js:17:14)
18 verbose stack at runCallback (timers.js:810:20)
18 verbose stack at tryOnImmediate (timers.js:768:5)
19 verbose cwd /var/lib/jenkins/workspace/hds_v2_docker/web
20 verbose Linux 4.4.0-59-generic
21 verbose argv "/usr/bin/node" "/usr/local/bin/npm" "install"
22 verbose node v8.16.0
23 verbose npm v6.9.0
24 error Cannot read property 'match' of undefined
25 verbose exit [ 1, true ]
Try removing your package-lock.json to see if that helps.
rm -rf package-lock.json
Edit: If the issue still persists, delete node_modules as well.
rm -rf node_modules
You have to remove both package-lock.json and node_modules/.
If you don't remove both, the problem will come back on the next npm install.
I had the same error when running npm install in my repo. I don't use Jenkins, but I found a generic approach to debugging (and ultimately resolving) this issue in NPM.
Open the npm debug log file that the cli provides you. (on Windows, under C:\Users\USERNAME\AppData\Roaming\npm-cache\_logs by default)
Look for the stack trace of the error, at the bottom of the file.
The first three lines of the error stack trace should be something like:
18 verbose stack TypeError: Cannot read property 'match' of undefined
18 verbose stack at tarballToVersion (C:\Users\USERNAME\AppData\Roaming\nvm\v14.5.0\node_modules\npm\lib\install\inflate-shrinkwrap.js:87:20)
18 verbose stack at inflatableChild (C:\Users\USERNAME\AppData\Roaming\nvm\v14.5.0\node_modules\npm\lib\install\inflate-shrinkwrap.js:113:22)
Open up the inflate-shrinkwrap.js file, and go to the line listed in stack-trace line #3 above.
Add this debugging code: (just before the line [in stack-trace] which calls tarballToVersion)
if (sw.version == null) {
console.error(`
NPM is trying to retrieve package "${name}" with version "undefined"!
Package location: ${(onDiskChild || {}).location}
Package parse error:`, (onDiskChild || {}).error);
}
Run npm install (or whatever command yields the error). You should see an output like this:
NPM is trying to retrieve package with version "undefined"!
Package location: /firebase-feedback/webpack-dev-middleware
Package parse error: [Error: ENOENT: no such file or directory, open 'C:\Root\Apps\#V\#Modules\firebase-feedback\Main\node_modules\webpack-dev-middleware\package.json'] {
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Root\\Apps\\#V\\#Modules\\firebase-feedback\\Main\\node_modules\\webpack-dev-middleware\\package.json'
}
Go to the path specified in the internal error. You should find that the package.json file at that path is indeed missing.
Resolve that underlying "package.json" issue as you see fit. (for me, this was by deleting the C:/Root/Apps/#V/#Modules/firebase-feedback/Main/node_modules folder, then running npm install in the Main folder)
Note that in my case, the underlying issue (of the missing package.json file) appears to have been caused by me accidentally running npm install from the parent project (which uses my firebase-feedback library), while I had that library "npm linked".
I normally use npm-safe-install to avoid these sorts of issues (when using npm link), but I must have forgotten sometime recently -- leading to NPM mangling the npm-linked libraries' node_modules folders.
Similar issues relating to npm link have happened before, but I hoped NPM would have patched these sorts of issues by now. Apparently not; though version 7 of NPM has been stated as going to have a rewrite in that area, so hopefully that will solve it long term.
You have to remove project Package-lock.json file. then try to install what you want.
The error may vary on what npm internals file it can be thrown! (And i wonder for all the possible reasons)! And it should be a bug!
(in my last case: it was on [_canPlaceDep] method of the file build-ideal-tree.js of npm!
Note
If none of the common methods works! And that you are using nodejs v15+ and one of latest npm version! Go to the last part! The problem that i call the nodejs VERSIONS HELL! (NOTE: after reflection! For npm it may not be a version HELL! READ TO KNOW)
How to try to solve
Removing node_modules
\rm -r node_modules
Reinstall after
npm install
(NOTICE: that may still not work)
You can try to remove package.lock too!
Clearing the cache
npm cache clean --force
That can work if the cache get currupted somehow! But the common error is more of Unexpected end of JSON input while parsing near ...
You can check my answer here (that explain it well): https://stackoverflow.com/a/52249619/7668448
Removing package.lock (which is not adviced)
rm package.lock
Why not advised
From #DanielIM comment
No, it should not. This is "the recommended workaround" but is incredibly broken in practice. Having a locked dependency in package.json in no way ensures that dependency's dependencies will remain consistent, so removing the package-lock.json file, npm installing, and generating a newlock file *will allow those sub-dependencies to change, which often completely breaks any future building. Using an existing lock file is often the only way to maintain builds (that is the POINT of the file, after all) so removing it completely goes against the reason for its existence.
So generally it's nice to leave that as a last resort! If it does not work ! You can try with removing node_modules too!
Reinstalling nodejs or NPM
A problem can happen at npm level! Trying to reinstall can be a nice way!
To test quickly in place of reinstalling! Using NVM (nodejs version manager) and switching to another version is fast and interesting! Because we can also test for VERSION HELL PROBLEM!
If it works after switch! Then either it's a problem with npm and a reinstallation may fix it! Or it's a version Hell problem (a bug)!
How to reinstall fast! Again use nvm!
nvm uninstall v15
then
nvm install v15
then use it
nvm use v15
You can just install another version and use it! (v14 for example)
Check the VERSION HELL PROBLEM And how to use nvm to switch between versions!
The uncommon or new! THE VERSIONS HELL
In this year! I encountered many nodejs VERSIONS HELL problems! (I like to call them that) (because i gave them a name! The skies are blessing me with more) (irony)
To list them quickly:
Node v14 HELL (POSTGRES) and causing problem for pg module (postgres) [because of breaking changes! That pg was depending on!] (if you are using knex or any orm or query builder! And use it with postgres! Big chance you'll encounter it! If you just upgrade nodejs version alone! [Solution: upgrade pg versoin to the latest (>=8.0.3) [They made a fix] (Can check a full detailed explanation here https://stackoverflow.com/a/64639717/7668448)]
Typescript v4 HELL! A similar problem! Where typescript in one of my project fail internally with cannot read property "" of undefined! Rolling back to v3.9 run successfully! No problem!
Fix Our problem (Cannot read property 'matches' of undefined)
If you are using node v15! Try with node v14 (npm v6.14.8)! That may be it! An npm bug! That's a first thought can be! That what i thought at first!
That's was the case for me! In this last problem! I tried all the solutions that i'm familiar with! And they were already listed here too! None worked! And more when i removed node_modules! I was Please not another version HELL! And yea it was exactly that! It worked well with **node v14** (npm v6.14.8). Which suggest a [BUG].
Then reflecting a bit on it! It was like hey! When i change the version! I'm using another nodejs installation! Which can just not have the problem. A problem with npm structure or something and a re-installation may fix it (as mentioned above)!
After it ! I tried with node v15.3.0. And it worked all ok! After the installation was all right done! I went back to node v15.0.1! And it worked again! So the problem is absolutely not a VERSION HELL problem
I'm still uncapable to explain what did happen! But in short! Using NVM! To try with another version! Is a good way to go about it! You can reinstall quickly the current version too!
Big Take down (for the VERSION HELL)
Starting from nodejs v14! And v15! Or just generally! It's nice to be skeptical about the versions! More of a reason when it doesn't make sense! And that's about all the problems not just npm! There is so many VERSIONS HELL problems! I encountred 2 up to now! Being alerted to the VERSIONS HELL can save you a lot of time!
How to test fast and also switch nodejs version quickly
To be fast at testing this and checking! Mostly for any internal error that will come! I'll google it quickly! And try another version of nodejs or whatever in question (ex: typescript)! I can too debug (console.log) The internal file where the error was thrown! And try to figure out something!
But that's it! It's really interesting to check for other versions! (nodejs, typescript, ... [remember be skeptical or alerted])
For nodejs To do it quickly:
NVM to switch quickly nodejs versions (npm)
Use NVM (nvm is a version manager for node.js,)
Quick installation of version in NVM
nvm install v14
Quick switch to another node version
nvm use v14
(Check the doc for the details! And installation process)
For switching and testing some npm module version (ex: typescript)
If it's a cli tool! you can install a precise version globaly
npm i -g typescript#3.9
use the # syntax!
Once you verify and test you can switch back to whatever you like!
If it's in a project! You can do the same (not globally)! use the # syntax to precise the version!
npm i moduleName#<versionSpecifier>
or with saving
npm i moduleName#<versionSpecifier> --save
Version specifier use SEMVER convention (https://semver.org/).
Last tip (use npx in your scripts)
It's nice to set a version internal to the project! For example
"devDependencies": {
"#types/cors": "^2.8.6",
"#types/gulp": "^4.0.6",
"cross-env": "^6.0.3",
"glob": "^7.1.6",
"gulp": "^4.0.2",
"nodemon": "^2.0.4",
"ts-node": "^8.10.2",
"typescript": "^3.9.7", // <===== Typescript version 3.9 (for this project)
"jest": "^26.6.3"
}
In scripts i use npx:
"scripts": {
"build": "npx tsc && gulp build",
When we use npx this way with a nodjes module cli tool! npx will check first if the module is available in the local node_modules! If found will use it (use global otherwise, or Download latest and run)!
So doing what i'm suggesting! Will make sure your project will run independently from whatever you have in global!
(Read more about npx if you don't know the tool well)
Following steps work for me -
Delete npm and npm catch folder from ../AppData/Roaming
Install latest node js for here.
Retry all the steps according to your repo.

Windows 10 Can no longer run a javascript file through node.js or display version nor npm

I am on Windows 10.
Node Js version V10.16.3 is successfully installed. Npm version 9.x ok also.
I was working for several weeks on a vuejs project using Visual Studio Code.
Suddenly 2 days ago, the npm start command stopped working.
After investigation and having deinstalled and reinstalled nodejs several times (with deletion of directories), I keep ending up with the same problem I'm describing below:
Nodejs REPL console is working fine. When I type process.version > it displays V10.16.3
node -v or node --version display nothing but a blank line in the cmd window.
node test.js (console.log("hello");) does nothing (no execution at all), except printing a blank line.
If I type node test.js > test.log: nothing is written to test.log.
npm -v or npm --help open several extra windows in the cmd window.
The 1st extra window is titled "C:\Program Files\nodejs" and closes straight away.
The 2nd extra window is titled "npm" and closes straight away.
Then the prompt goes back to the current cmd window where I typed the command npm --version or -v.
Then another cycle starts with:
The 1st extra window is titled "C:\Program Files\nodejs" and closes straight away.
The 2nd extra window is titled "npm" and closes straight away.
And finally it comes back to the current cmd window with no output at all except for a blank line.
Sometimes, I can see the version number "9.x" being displayed in one of the npm titled window.
npm -list does the same with opening of the 4 successive windows, and a list of node modules is displayed in the last one, titled "npm", before the window closes.
I checked npm.cmd and it is OK
When I type node "C:\Program Files\\node_modules\npm\bin\npm-cli.js" -v, it displays nothing but a blank line.
I read all questions and answers in stackoverflow but none is related to my case except this one: npm -version displays nothing, but there is no solution provided.
Can someone help me, please?
C:\Program Files\nodejs> node -v
C:\Program Files\nodejs> npm -v
C:\Program Files\nodejs> node "C:\Program Files\\node_modules\npm\bin\npm-cli.js" -v
I expect to display node version and npm version to be displayed in the current cmd line and I expect node test.js to work and get my "hello" as it was working 2 days ago...
I provide somme complements and details with some screenshots :
1) Node console REPL
Node console REPL works correctly
2) Cygwin console
Node works with cygwin
3) Powershell console
Node -v, npm -v, node script.js execute but in a temporary separate popup window > Before this bug with node cmd > all displays were output directly in the console without popup window
4) node cmd window
Nodejs command prompt run by node.cmd script no longer works > no version number is displayed. npm command open multiple popup windows with execution of npm but terminates with node error
11 silly lifecycle projet-test#1.0.0~dev: Returned: code: 9 signal:
null 12 info lifecycle projet-test#1.0.0~dev: Failed to exec dev
script 13 verbose stack Error: projet-test#1.0.0 dev:
webpack-dev-server --inline --progress --config
build/webpack.dev.conf.js 13 verbose stack Exit status 9 13 verbose
stack at EventEmitter. (C:\Program
Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:210:5) 13 verbose
stack at ChildProcess. (C:\Program
Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:210:5) 13 verbose
stack at maybeClose (internal/child_process.js:1021:16) 13 verbose
stack at Process.ChildProcess._handle.onexit
(internal/child_process.js:283:5)
I think you should completely uninstall Nodejs and NPM and reinstall. Some files might have been corrupted.
To uninstall NodeJs and NPM completely pls follow this :
How to completely remove node.js from Windows
Then install the Nodejs required Version. When installing, please select all module as shown below
IMP: Don't use NPM version higher than 6.11.3
Alternatively, if you don't want to uninstall select repair option by running installer again
I found a aworkaround doing a silly thing :
I renamed node.exe in C:\Program Files\Nodejs as mynode.exe
I modified nodevars.bat, npm.cmd by replacing node.exe by mynode.exe in each node.exe call
I wrote a simple node.cmd file containing these lines and placed in C:\Program Files\ directory:
:: Created by DR
#ECHO OFF
SETLOCAL
SET "NODE_EXE=%~dp0\mynode.exe"
IF NOT EXIST "%NODE_EXE%" (
SET "NODE_EXE=mynode"
)
"%NODE_EXE%" %*
running node -v being node.cmd works
I know it is a stupid method but it works in my very specific case. It means that 'something' prevents to run node.exe in command line but allows node.cmd that launchs mynode.exe.
I someone could explain/found out what is wrong in my windows configuration, I would be very thankful.
( I checked for any other node.exe, checked path and register, install/uninstall node, etc. BUT, I always stick with the same probleme although running node.exe in command line was working vey well before I encountered the crash of eslint when editing a simple vue.js file with visual studio code editor. since that there is a parameter in my windows confinguration that blocks node.exe in dos command line and only within command line window. For recall, node -v (with node.exe) works well in cygwin...

NPM Link Error EEXIST -4075 when linking multiple folders

I am working on a installer, after we install the files we run a script that uses NPM Link to setup some folders.
When I run the script on my VM it works without any errors/warnings. When I try to run it on my own machine I get this error:
84 verbose node v9.5.0
85 verbose npm v5.6.0
86 error path C:\Users\me\AppData\Roaming\npm\node_modules\module
87 error code EEXIST
88 error errno -4075
89 error syscall symlink
90 error EEXIST: file already exists, symlink 'C:\Users\me\AppData\Roaming\npm\node_modules\module' -> target folder
91 error File exists: C:\Users\Me\AppData\Roaming\npm\node_modules\module
92 error Move it away, and try again.
93 verbose exit [ -4075, true ]
Now I know this file already exists, I already linked it. But I am not getting this error on my VM where I do the exact same thing. Do I need to remove the node_module everytime I link it? That can't be right, right?
I already re-installed NodeJS on my own machine.
This is basically what I do:
call NPM link ..\Folder1
call NPM link ..\Folder2
call NPM link ..\Folder3
And I have to do this for multiple folders. Some folders need to have all 3 linked, others just the 1 or the 2. So for every folder I do this in, I get the error for every operation. It does the linking but I really want to get rid of the error, especially cause it works on my VM.
I already tried to go in to the folders and call NPM Link (without arguments) but that doesn't seem to do anything.
Found out what was the problem.
First you run NPM Link (No arguments) in the source folder.
NPM Link
Then you run NPM Link module_name in the target folder.
NPM Link [module_name]
So use the module_name instead of the location.

Resources