为什么手写的cli,在Mac环境上不能执行?

拍死一个bug,就站的高一点

Posted by Mopecat on October 12, 2019

前段时间根绝Vue-cli仿写了一个简单版本的cli应用在公司了,虽然也没什么人用,最近换本了,突然想起这个项目所以在新的电脑安装了一下试试 ******

开始

打开终端执行命令tujia-cli create,自己写的东西命令还是记得牢啊 哈哈哈哈哈。

然后我就发现项目的命令无法执行,天啦撸发布的时候相当之ok的啊老铁,你怎么又不好使了啊!于是开始我就去我安装的目录上看了一眼,发现命令文件tujia-cli-create不是一个可执行的文件,于是我就知道该怎么解决了, 解决方式大概是这样的:

  • 在终端打开对应目录,(容我把后面部分目录用**代替)/usr/local/lib/node_modules/**/bin/ 执行命令chmod +x tujia-cli-create 这样文件就变成了可执行文件,但是仍旧没有解决,运行命令时还会报一个错误 env: node\r: No such file or directory (what’s fuck???)

于是又google一番,解决方式是安装 dos2unix 然后再去对应的目录执行 dos2unix tujia-cli-create

恩……这回倒是好了,可以用了,可是为什么呢???为什么呢???

于是我又google一下dos2unix这个库是干什么用的,然后我就明白了。

根本原因是:这个项目之前是我在windows本上开发的,所以项目中的命令文件格式会有所变化,导致在unix环境下无法执行,dos2unix就是把这种文件转化成unix下可执行的文件

找到原因了就好解决了,于是我把文件内容复制一下,然后又删掉了,再新建一个文件,把内容复制进去,再在空白部分加一个空格(主要是为了提交git),然后再publish一下这个包OK问题解决

总结

windows系统编辑过的文件可能会导致文件无法在unix环境下执行,可以在发布之前用dos2unix这个库来修改一下文件格式就可以解决问题啦~~撒花撒花