Open ensconced opened 3 years ago
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.
@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! :)
steps to reproduce the issue:
yarn init -y
yarn add typescript-call-graph
yarn run tcg
env: node\r: No such file or directory
There's some discussion here https://github.com/yarnpkg/yarn/issues/5480