env node r No such file or directory
执行 npm scripts命令突然报错如下:
xx@ling:/usr/github_reps/block-ui# yarn run build:esm
yarn run v1.22.10
$ block-scripts build:component:esm
/usr/bin/env: ‘node\r’: No such file or directory
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
有效信息在第四行 /usr/bin/env: ‘node\r’: No such file or directory 没错~ 后面为啥多了个 \r 回想起当前项目跨平台在开发。Linux 和 Window 都在陆续 pull && push 代码,\r 字符很容易联想到 [End Of Line Sequence]。
随即用 VScode 查看了下,项目文件

node_modules 下执行代码文件

在 linux 环境下统一为 LF 后 scripts 命令成功运行!
CRLF and LF
CRLF / LF 分别是 Window 和 Unix 系统采用的 End Of Line(EOF) 换行符
CR = Carriage Return (\r, 0x0D in hexadecimal, 13 in decimal)
- moves the cursor to the beginning of the line without advancing to the next line.
LF = Line Feed (\n, 0x0A in hexadecimal, 10 in decimal)
- moves the cursor down to the next line without returning to the beginning of the line.
在打印机时代,使用 CR 把打印机指针移动到行首,LF 把指针往下移动一行。 Unix like 系统为了节省空间等原因里大多采用 LF(\n) 换行,而 Windows 中则延续了打字机时代使用 CRLF 换行。
fix: Prettier
First available in v1.15.0, default value changed from auto to lf in v2.0.0
Prettier v2+ EOL 的默认配置就是 LF 可以完美解决此问题

浙公网安备 33010602011771号