-
-
Notifications
You must be signed in to change notification settings - Fork 360
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
No coverage files found for Node v5.8.0 and NPM v3.7.3 #190
Comments
@arrowrowe I cloned https://github.com/arrowrowe/romi and installed it locally.
This is on OS X, npm 3.8.1. Can you reproduce this outside of Travis? |
Works fine for me in |
Thanks for responding! I will retry it later to confirm. |
Failed on Ubuntu 14.04.1, using Node v5.8.0 and NPM v3.7.3, as the log below shows. (No need to paste it in fact. It is same with the Travis log.)
However, Not sure what causes this......... |
If you remove |
@novemberborn I suppose not, as Travis's fresh install (Node v5.8.0 and NPM v3.7.3) fails. I am confirming it now. Will update later. upd: It works on my Ubuntu............... Seriously confused now. I am restarting Travis's build. Will update later. upd: The Travis build with Node v5.8.0 and NPM v3.7.3 still fails. I am confirming all this on my Linux server, in case anything local effects the result. Will update later. upd: It fails on my Linux server, using Node v5.8.0 and NPM v3.7.3. Confirmed. The thing is:
|
@arrowrowe woa. Thanks for you efforts. So much trouble with npm. |
@arrowrowe this is a really interesting bug! I'd be interested to diff npm@3.8.1 vs. npm@3.7.3 -- I wonder if we touched anything in the script execution logic. |
I think I understand this. This has nothing to do with npm versions at all. [Update: Okay, at least not the ones mentioned above. See below.] As far as I can tell, it is because the Node.js distributions have the shebang at the start of npm-cli.js replaced with a (relative) reference to the Node.js executable. Re-installing npm solved the problem because npm’s copy of npm-cli.js contains no modified shebang, so the “right” wrapper script gets invoked. Another workaround might be running (You can see the difference between the installed npm-cli.js files here.) I don’t know whether this is fixable without either some special handing of |
I think I’d be willing to write a patch for spawn-wrap which adds special handling for npm, if there’s a chance it gets landed. @bcoe, what do you think? izs seems to have abandoned that module, but given that you’re a member of npm and tapjs, I imagine you can assess the situation better than I do? |
@addaleax wonderful find, yes please submit a patch to spawn-wrap and I can help land it. |
@addaleax if I'm reading this correctly, does the issue arise when the platform is detected as |
@bcoe The issues arises either way. |
As laid out in istanbuljs/nyc#190, spawn-wrap’ing `npm` does currently not work when using the `npm` binary that comes bundled with Node.js. This adds special handler code for the case that `npm` is the program that should be executed, looking for the `npm` executable in PATH and invoking the shim with it as an argument.
As laid out in istanbuljs/nyc#190, spawn-wrap’ing `npm` does currently not work when using the `npm` binary that comes bundled with Node.js. This adds special handler code for the case that `npm` is the program that should be executed, looking for the `npm` executable in PATH and invoking the shim with it as an argument.
There is a work around to this, please refer this comment at #211, instead of |
@addaleax what's a good email to use for you, I'd love to get you into our slack so we can debug this issue. |
@bcoe Seen? Would like to delete the comment with my raw email address if that’s okay. 😄 |
As laid out in istanbuljs/nyc#190, spawn-wrap’ing `npm` does currently not work when using the `npm` binary that comes bundled with Node.js. This adds special handler code for the case that `npm` is the program that should be executed, looking for the `npm` executable in PATH using `which` and invoking the shim with it as an argument.
@jamestalmage thanks for the advice! It does benefit shortening scripts. I didn't notice the fact that my tortuous usage put |
Indeed, that's a good reason to use it. If you consistently use |
I think it’s quite okay. Either way, the issue with running nyc + recursive npm scripts should be fixed soon, too. |
Agreed - it's not a mistake to do so, just a bit verbose in this particular case. |
@jamestalmage I doubt this has any adverse effects though. The linter code wouldn't be instrumented and it would use the filesystem to access the code. |
Wrapping with |
As laid out in istanbuljs/nyc#190, spawn-wrap’ing `npm` does currently not work when using the `npm` binary that comes bundled with Node.js. This adds special handler code for the case that `npm` is the program that should be executed, looking for the `npm` executable in PATH using `which` and invoking the shim with it as an argument.
@addaleax @arrowrowe can we close this at this point? If you run:
We've landed various fixes to the |
@bcoe good to me now! 💯 |
Maybe close when you cut a stable release? (This helps people tracking the issue to now when it's "stable"). |
Adds tests for checking that `nyc npm test` works, one for when the npm `test` script directly refers to the JS script and one for when npm runs nested lifecycle scripts. This is a regression test for istanbuljs#190.
|
This also belongs to istanbuljs#190, but the new tests include actual fake “npm” executables with both absolute shebangs and the twisted shebang that comes with current Node.js binary distribution tarballs.
This also belongs to istanbuljs#190, but the new tests include actual fake “npm” executables with both absolute shebangs and the twisted shebang that comes with current Node.js binary distribution tarballs.
This also belongs to istanbuljs#190, but the new tests include actual fake “npm” executables with both absolute shebangs and the twisted shebang that comes with current Node.js binary distribution tarballs.
Adds tests for checking that `nyc npm test` works, one for when the npm `test` script directly refers to the JS script and one for when npm runs nested lifecycle scripts. This is a regression test for istanbuljs#190.
This also belongs to istanbuljs#190, but the new tests include actual fake “npm” executables with both absolute shebangs and the twisted shebang that comes with current Node.js binary distribution tarballs.
Fixes a variant of istanbuljs/nyc#190 for Windows when the `npm.cmd` shim is invoked from the shell (i.e. `cmd /s`). Fixes: istanbuljs/nyc#300
Fixes a variant of istanbuljs/nyc#190 for Windows when the `npm.cmd` shim is invoked from the shell (i.e. `cmd /s`). Fixes: istanbuljs/nyc#300
Fixes a variant of istanbuljs/nyc#190 for Windows when the `npm.cmd` shim is invoked from the shell (i.e. `cmd /s`). Fixes: istanbuljs/nyc#300
Fixes a variant of istanbuljs/nyc#190 for Windows when the `npm.cmd` shim is invoked from the shell (i.e. `cmd /s /c`). Fixes: istanbuljs/nyc#300
UPDATE: See @addaleax's analysis here.
See these Travis logs for details:
This happens only using Node v5.8.0 and NPM v3.7.3 together.
UPDATE: Thanks to @novemberborn's response and @thangngoc89's suggestion in MoOx/phenomic#296, I am working around telling Travis to install latest NPM (i.e. 3.8.1). Below is added to
.travis.yml
.The text was updated successfully, but these errors were encountered: