
在 SF 上问了一个 NodeJs 项目跨系统使用的问题:https://segmentfault.com/q/1010000008993837,一天了没得到答案,搬到 v2 来求大神解答。
1 behappy 2017-04-09 10:54:25 +08:00 vim :set ff=unix |
2 clearbug OP @behappy #1 你跟 sf 上的两个人一样误解我的意思了啊。。我知道可以在 vim 或者一些编辑器里设置不同的换行方式,但是,我这个项目已经写好发布到 npm 仓库了,以后使用时不论 Windows 还是 Linux 下都可以直接使用`npm install -g package-name`的方式进行安装使用了,难道我每次在 Linux 下安装时都得去用编辑器去替换一下换行风格才能使用吗?这得多麻烦,更别提让别人使用 |
3 lwdggm 2017-04-09 11:08:10 +08:00 via Android 在#! /usr/bin/env node 隔一行再写你的 js 代码。 如 ``` #! /usr/bin/env node //这一行保持为空,不要写任何东西 console.log(1) ``` |
4 clearbug OP @lwdggm #3 还是不行,一样的问题。搞不明白像 hexo 那种在任何系统上一键安装了就可以直接使用的项目是怎么做到的。。。 |
5 lwdggm 2017-04-09 11:19:53 +08:00 via Android 上面的例子,注释也不要有。简单说就是 连续换两行 |
6 lwdggm 2017-04-09 11:24:12 +08:00 via Android 对了,你的 linux 下 node 命令能用吗,一般装好是 nodejs 命令 |
7 pigzilla 2017-04-09 11:24:19 +08:00 无语,再发一个新版本改掉换行符的问题不就行了吗。。。。 |
8 bdbai 2017-04-09 11:26:44 +08:00 via Android 只要用 \n 就可以了,已经发布到 npm 仓库的再发布一次呗。 你有没有注意过其它 node 模块是如何处理的? |
10 clearbug OP @lwdggm #6 linux 下确定是有 node 命令的,也可以正常使用,因为我只要在 vim 下把文件转换为 unix 风格就可以用了 |
11 clearbug OP @pigzilla #7 再发一个新版本。。。你的意思是不同系统就不同版本吗?方法虽然可行,但是这并不能解决我的疑惑。。。你想想像 hexo 这种在命令行下就可以一键生成一个博客目录的工具,它可不是 Windows 系统有一个版本, linux 系统有一个版本吧 |
12 clearbug OP @bdbai #8 就是不知道其他 node 模块是怎么处理才做到跨系统时可以不受不同换行符风格的干扰的,也不用像楼上说的针对不同系统发布不同版本。如果我使用\n ,那么我在 Windows 下直接一键安装使用时岂不是还是有问题?因为 Windows 下\r\n 才是换行啊。。。 |
14 pigzilla 2017-04-09 11:51:08 +08:00 @clearbug #11 UNIX LF 的是被所有系统的 node 接收的。。。。你没注意到你用的所有包都是一个 UNIX LF 的版本吗。 |
15 clearbug OP |
16 clearbug OP @pigzilla #14 你说的 UNIX LF 是被所有系统的 node 接收的,这个又让我疑惑了。。第一行这一句`#!/usr/bin/env node`难道不是给操作系统读取以便查找运行该脚本的程序用的吗? |
17 momocraft 2017-04-09 12:31:06 +08:00 @clearbug 只有 Unix 原生地认 shebang 那一行, 执行时的顺序是 OS 解析 shebang -- OS 启动 node. 我猜测在 Windows 版会有其他行为, 比如用文件关联决定启动 node. |
18 bdbai 2017-04-09 12:49:02 +08:00 via Android @clearbug Git 倒是用了“高超的技术”, Windows 下 CRLF , Linux 下 LF ,提交自带转换。 |
19 LioMore 2017-04-09 12:54:36 +08:00 ```bash $ git config --global core.autocrlf false $ git config --global core.eol lf ``` |
20 zyEros 2017-04-09 12:58:13 +08:00 via iPhone 用 sublime 转一下文件的换行 |
21 clearbug OP |
22 clearbug OP @zyEros #20 sublime 也可以进行换行符风格转换吗?刚才没找到,我还专门安装了 vscode 。。。 |
24 loading 2017-04-09 14:00:48 +08:00 这个上次我用 vscode 的 go 插件(linux 环境),遇到一个 bug ,他们使用 windows 开发的,最后换到 osx 就好了。 https://github.com/Microsoft/vscode-go/pull/838 |
26 bdbai 2017-04-09 14:35:13 +08:00 via Android @clearbug Git 着眼于协作,而 NPM 只要能给 Nodejs 跑起来就行了,没必要再转换的。 |