Comments (15)
I'm seeing the same issue when trying to run sass-lint
so I don't think it's istanbul
specific
from cmd-shim.
Out of curiosity, I made some investigation on this.
In fact, SyntaxError: missing ) after argument list
is reported by node.js and is not reported by shell. So this does not necessarily mean something goes wrong with the shim shell script.
With some reading of the code of istanbul
and testing, I think this is caused by running the shim shell script via node. That is, in your particular case, node /c/projects/foo/node_modules/.bin/tape
was run under the hood, where ./bin/tap
is the shim shell script rather than the actual node.js script. You may check this with --verbose
added to your istanbul cover
command.
See istanbul/run-with-cover.js#L117 for related code.
So even if this is not istanbul
specific, I thinks it's not caused by #4, and not related to #16.
(I'm new to node.js and not using istanbul
, so chances are I missed or misunderstood something. Please tell me if i'm wrong.)
from cmd-shim.
I have not had a chance to look into again. I'm afraid I got caught up with work long enough to forget about this issue. I apologize.
I did test out our internal git extensions (written in node and the reason I submitted #4 ), and they work on latest node.js. After reading @pallxk comment (thanks for looking into it), I looked at the Istanbul documentation here. It looks like the command is expecting a node.js javascript file and not a shell command.
Perhaps instead of passing istanbul /c/projects/foo/node_modules/.bin/tape
you could try figuring out what the main module is and pass it that. Based on tape's package.json it looks like it would be something like this: /c/projects/foo/node_modules/tape/main.js
.
from cmd-shim.
@copenhas Bingo!
This works for mocha on Windows:
./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha
Thank you for your outstanding support and very quick response.
Best to you,
Karl
from cmd-shim.
Sorry for such a late response. I don't have a Windows setup at home. I got a basic setup going and tried something real quick.
Setup:
Windows 7
git for Windows 2.8.1
node 4.4.3
MinGW with MSYS installed (grabbed the installer from sourceforge)
I installed istanbul globally:
npm install -g istanbul
Then in git bash, cmd.exe, and MSYS bash this is what I got:
$ istanbul
Need a command to run
Try "istanbul help" for usage
Just to make sure the line in question was in the script I ran the following in git bash:
$ cat `which istanbul`
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
"$basedir/node" "$basedir/node_modules/istanbul/lib/cli.js" "$@"
ret=$?
else
node "$basedir/node_modules/istanbul/lib/cli.js" "$@"
ret=$?
fi
exit $ret
Looks like this needs some more investigation to figure out why this is causing issues for you. I'll try to test some git extensions at work when I get a chance (it might take me a few days though). They were the reason originally #4 was opened.
from cmd-shim.
@copenhas Thanks for the response. Might be worth trying to run some of the istanbul
commands (e.g., istanbul cover
) to see if things work on your end. And would there be any difference in a local installation as opposed to installing globally? Also, not sure if this is an istanbul
specific issue.
from cmd-shim.
@copenhas wanted to follow-up and see if you had any updates.
from cmd-shim.
I've got the exact same issue, driving me crazy. The same exact code runs on my Mac w/o this error, but on Windows it just won't run.
Don't have any idea where to start looking.
from cmd-shim.
@kdawg1406 I believe the difference between macOS and Windows is that macOS supports she-bang scripts, while in Windows the commands have to be wrapped up into the cmd shim. So when you pass in ./node_modules/.bin/mocha
on macOS the file probably contains JavaScript, but on Windows it contains shell commands.
Per the comments above you'll find that Istanbul is actually expecting a JavaScript file as the argument and not shell script or command. I believe that's what's causing the syntax error for you. You'll need to find out what the main module file path is so you can pass it in cross platform.
from cmd-shim.
Looks like Istanbul documents it some at README.md#usage-on-windows
from cmd-shim.
@copenhas Was able to resolve the issue using a solution similar to the solution described above. Thanks for the help. Closing the issue.
from cmd-shim.
@kdawg1406 - your solution doesn't work for me - when i use: ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha
error is:
\node_modules\.bin\_mocha:2
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
^^^^^^^
SyntaxError: missing ) after argument list
when i use (as you suggest): ./node_modules/.bin/istanbul cover ./node_modules/bin/_mocha
error is: Unable to resolve file [./node_modules/bin/_mocha]
I don't understand how it can't resolve the file because i can see the file at ./node_modules/bin/_mocha]
from cmd-shim.
@ReinsBrain Not sure, this was a long time ago, so much as changed in the toolchain. Sorry, I don't have an answer for you.
from cmd-shim.
This doesn't work for storybook. trying to debug via node --inspect node_modules/.bin/storybook-start -p 9001
throws the same error.
from cmd-shim.
@ReinsBrain You might need to change that line to npx _mocha
.
Also, this error is happening even in the Webpack project. I get it when I run from a child process started with node
.
Looks like something these libraries depend on is running this code in a way that Windows doesn't understand.
Whoever wrote the original code (cmd-shim
?) has an incorrect assumption about the OS when commands are run from Node.js rather than from the OS's CLI.
from cmd-shim.
Related Issues (20)
- Invocation fails if %0 is "prog" instead of "path\to\prog" and prog was quoted when invoked HOT 4
- Reporting a vulnerability HOT 1
- Add "@" to start of single line .cmd files.
- Package new version? HOT 5
- basedir incorrectly resolved on msysgit HOT 3
- Use the value of NODE_EXE rather than wherever node is found in PATH if available HOT 1
- Support cross-drive linking HOT 6
- Batch files should be written using an OEM character set HOT 1
- $basedir missing on MINGW / Git Bash & cygwin HOT 1
- Having a file named node.js will be "run" instead of node HOT 1
- Local node incorrectly resolved on Windows
- [BUG] *.CMD shims don't work when they are in paths containing shell metachars HOT 4
- [FEATURE] Powershell - Windows - Handle node.exe not on path, but node existing similar to cmd shims
- [FEATURE] drop env's -S flag HOT 3
- [BUG] <Unable to install latest version>
- [BUG] .cmd @echo off
- [BUG] Reports invalid process.cwd()
- [BUG] [ReOpening] Having a file named node.js will be "run" instead of node
- published version differs from git version HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cmd-shim.