下午写了一个npm包(nodejs包),上传到npm上,出现执行权限的问题
npm包的编写和开发是位于windows的个人电脑上,但是需要在服务器上安装该包,并且包内包含一个shell脚本
结果每次提示缺乏执行权限,使用了
chmod +x ..
就可以了,怎么才能让这个文件在windows下就带着执行权限上去,从而可以不用每次更新包,都要手动去找到包的位置再对一个文件执行权限修改。求解决办法
下午写了一个npm包(nodejs包),上传到npm上,出现执行权限的问题
npm包的编写和开发是位于windows的个人电脑上,但是需要在服务器上安装该包,并且包内包含一个shell脚本
结果每次提示缺乏执行权限,使用了
chmod +x ..
就可以了,怎么才能让这个文件在windows下就带着执行权限上去,从而可以不用每次更新包,都要手动去找到包的位置再对一个文件执行权限修改。求解决办法
linux默认的umask决定了你上传的文件默认是不具有可执行权限的。
几种办法可以搞定这个问题,一种简单的方案是使用cygwin
或者mingw32
(git bash使用这货)这种posix模拟环境,在这个环境下赋权限后上传,也可以在这种环境下递交到git版本库,在服务器上拉版本库,也可以打tar包后上传,随你怎么选择。
受邀回答。这个问题我是无解的,勉强回答一下。我认为 windows 下开发的脚本程序,在 linux 下是没有可能有执行权限的。
如果说在 winodws 上安装 linux 虚拟机或者用 cygwin 或 mingw32 这个 posix 模拟环境,算是 windows 下开发的脚本程序,我觉得可能和题主的问题不太吻合。
因为,windows 和 linux 本来就是两个完全不同的操作系统。所以,根本的解决办法是使用 Linux 作为开发环境。
7 回答5.3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
简单啊,linux默认拷贝是没有x权限的,所以你可以直接
执行脚本