build: add .gitattributes for npm and other shims
This issue has been described in - https://github.com/nodejs/node/issues/43860
On Windows system, git clone or git checkout on the repo turns LF line endings to CRLF in the worktree. This can happen due to many reasons like -
- git config --system core.autocrlf (set to true)
- git config --global core.autocrlf (set to true)
- git config --local core.autocrlf (set to true)
- git clone --config core.autocrlf=true ...
Adding gitattributes for the shims will not convert them to CRLF line endings.
Also, there is a note[1] in test/README.md which says -
For the tests to run on Windows, be sure to clone Node.js source code
with the autocrlf
git config flag set to true.
Reason for using build subsystem - These shims are just copied in stage_package label of vcbuild.bat
Fixes: https://github.com/nodejs/node/issues/43860 [1]: https://github.com/nodejs/node/commit/3654cd4cdaf2ab84d0e6a190c3b9e89e86726a88