doesn't work with yarn due to CRLF line-ending
steps to reproduce the issue:
- on macOS, make a new yarn project with
yarn init -y yarn add typescript-call-graphyarn run tcg- this results in an error:
env: node\r: No such file or directory
There's some discussion here https://github.com/yarnpkg/yarn/issues/5480
One option would be to use prettier, which by default always uses unix-style line endings https://prettier.io/docs/en/options.html#end-of-line
Would you accept a PR adding prettier to the codebase?
Sounds good! Thank you - I will accept a PR that adds prettier (and any fixes to the CRLF line-endings).
I wonder if it's because I used Windows to do my coding 😅 … I found this claim:
in Windows both a CR and LF are required to note the end of a line
It's pretty bizarre that yarn can't handle something that's rather ubiquitous 🤔
I guess another approach is to re-save whatever files necessary replacing CRLF with whatever yarn wants 🤷 -- whatever is easiest for you - thanks! 😁
Would also be great if you happen to be able to check if it still works on Windows before you create the PR 👍 but I could check too - just let me know.
I've had a closer look and the line-endings are actually fine (i.e. unix-style) in the source code so prettier won't help us here.
I think what's happening is that you have core.autocrlf = true in your git config (this is common for Windows) meaning when you check out the project, git will turn all the line endings into CRLFs in your working tree even if they are LFs in the repo in .git.
npm publish will publish whatever is in your working directory so when I yarn add your project I end up with the CRLFs (whereas npm install automatically changes them to LFs).
I think the best solution is to add a .gitattributes file to prevent git from using CRLFs in the working directory. I think that will override your local configuration.
opened a PR 🤞 https://github.com/whyboris/TypeScript-Call-Graph/pull/10
@whyboris just wondering whether you had time to take a look at this - let me know if you have any questions about it or don't think it's the right solution.
Sorry for the delay - busy weeks for me - I'm packing and getting ready to move to a new house 😅 I'll try to find time this week 🤝
Sorry for the delay - busy weeks for me - I'm packing and getting ready to move to a new house 😅 I'll try to find time this week 🤝
cool, just checking no rush 🙂
Hi here 👋 First of all, thanks a lot for this nice tool! Liking the project a lot :) However, I've been running into the same issue as @ensconced lately and I am curious if there's any chance for #10 to be reviewed? For now, I managed to solve the issue by replacing the line endings locally, but a more stable solution would be great 😊
For anyone interested, this worked for me to bypass the issue. I've edited the line endings on the installed tcg like this using vim:
# Make sure `tcg` is installed globally.
# $ npm i -g typescript-call-graph
$ vim $(which tcg)
#!/usr/bin/env node
"use strict";
exports.__esModule = true;
var open = require("open");
...
# now in VIM command mode
# first set all line endings to the DOS format to avoid mixed endings
:e ++ff=dos
# change the line endings to a UNIX format
:set ++ff=unix
# save the file and quit
:wq
If tcg is installed in project-specific node_modules, it is also possible to apply the same fix to the node_modules/typescript-call-graph/bin/index.js file. Of course, besides VIM other editors can do the same trick, and many people have been suggesting using a separate tool dos2unix.
(Approach credits to this unix.stackexchange post 🙂 )
Hope this helps anyone. Cheers ✌️
I've been away from personal coding projects for most of the last year 😓 -- moving to a new state and fixing up the house has been time consuming 😅
I'll try to get back to coding in August (in a few weeks) - I really should have merged #10 earlier 🙇
@whyboris thanks for the response! :) No worries at all, I can imagine the feeling! ✌️ Of course take your time! :)