[英]Node.js development, windows or linux?
我对Node.js平台上的Web开发感兴趣。 我的主机操作系统是Windows7。设置开发环境的首选方法是什么。 直接在主机或基于Linux的虚拟机上运行它? 这两种方法之间的优缺点是什么?
如果使用虚拟机,是否仍可以在Windows中运行文本编辑器和Web浏览器(出于性能原因)?
嗯,从经验,使用 的Linux 码头工人
编辑使用Docker。 烘焙依赖关系,在运行时安装项目,仅固定到LTS节点的特定版本。 我将在一个无法运行的项目上使用一个2gb的docker映像,导致几天的时间被迫升级到新软件包。 -2018/04/10
但是对于过去8年在基于linux的环境中进行开发并且过去6个月在Windows dot net环境中使用Node.js开发软件的人来说,这是我的发现,令人震惊或其他...
Windows上相当于Debians build-essentials
的Windows实际上实际上是一个分散的,名称不正确的gui集合,它们仅散布在Internet上,并且只需要特定的安装顺序,它们分散在Internet上。 与sudo apt-get install build-essentials
相比,这sudo apt-get install build-essentials
耗时,并且充满了隐藏的陷阱。
在Windows上进行开发将使您习惯于混用大小写路径名,除非您的团队有严格的政策要遵循/强制执行,否则以后将很容易遇到问题。
虽然Windows在路径中支持超过256个字符,但重要的工具却不支持。 进入左阶段:rimraf和robocopy ...嗯。
Windows终端很烂...默认外壳也是如此:cmd.exe ... Powershell的语法过于冗长,不符合我的喜好...安装Cmder可以在某种程度上缓解这种情况,但是Cmder与cmd.exe进行交互的唯一方法是基本上将击键复制到运行cmd.exe的隐藏Windows终端中。 (大笑)。 Cmder在具有更高模块化(zsh,bash等)的shell上工作得更好。 。 更新 :我现在将Powershell与pshazz和scoop一起使用,实际上使用起来很愉快。
在仍然改善了外壳和终端的情况之后,用于Windows的nodejs仍将假定您的环境变量为%OF%%THE%%WINDOWS%%VARIETY%...而不是$ UNIX $ STYLE。 因此,您基本上将主要使用cmd.exe中的bower和npm ...更多。 自从我合并了cross-env
和Commander或yargs之后,我似乎再也没有这个问题了。
您还需要为Windows安装python,这不是问题,因为choco存在并且已经回到了那里。 更新 :看看boxstarter,它将帮助您使用配方自动完成新机器的设置(或者实际上可以升级为使用ansible或盐)。
经验丰富的python,ruby开发人员会告诉您,当您需要重新访问旧项目时,需要使用旧版本的引擎(升级到较新版本通常是不方便或不实际的,请阅读:Rabbit Hole),因此您将想要像rvm和virtualenv ...
nvm(仅在unix系统linux和macosx上工作),因为它是bash脚本的集合。 我建议将ZSH与Zgen和Tarrasch/zsh-autoenv
插件一起用作外壳。
nodist
...是更好的选择,您无需担心某种autoenv,因为由nodist设计可解决此问题。 choco install cmder nodejs python2
choco install python2
http://scoop.sh
,然后使用它来安装pshazz。 tldr; 使用nvm。 除以下原因外,还有其他原因。
~/.local/share/npm
)。 令人愉快的是,这是我发现nodejs在Windows上安装正确的事情(可能不是故意的)。 node
的二进制文件,因此默认情况下#!/usr/bin/env node
将不运行nodejs。 幸运的是,debian系统有一个简洁的管理工具来控制env
二进制文件发出的内容: update-alternatives
。 忽略此处使用符号链接的建议,这只会在以后以细微的方式引起问题。 $ sudo apt-get install git-core git-flow build-essentials python-dev python- pip
$ curl https://raw.githubusercontent.com/creationix/nvm/v0.20.0/install.sh | bash
$ npm config set prefix ~/.local/share/npm
$ nvm install stable
$ nvm alias default stable
参考资料:
我们有一个系统,可以通过它使用一个配置文件,该文件可以处理所有问题,例如路径差异( "c:\\blarg"
与"~user/blarg"
),此外,还可以让我们控制调试和生产之间的差异环境。
Node.js是跨平台的,因此我们完全可以让开发人员在各种计算机上工作,这完全没有问题。
这是我在文件存储项目中使用的示例配置文件:
/**
* All of these are mandatory except for log_level (which defaults to "info", 1)
* and log_echo_to_console (which defaults to false)
*/
exports.config = {
log_level: 0,
log_file: "/path/to/send.log",
request_log_file: "/path/to/send_requests.log",
log_echo_to_console: true,
port_number: 8088,
no_notification_emails: true,
image_url_base: "http://s3.amazonaws.com/", // MAKE SURE THIS ENDS IN "/"
tmp_file_folder:"/tmp/",
s3_info: {
key: 'xxxxxx',
secret: 'yyyyy',
file_bucket: 'sendtransfer/',
},
backend_info: {
db_info: {
server: "localhost",
user: "db_user",
password: "secret",
database: "SendRemote",
pooled_connections: 125,
idle_timeout_millis: 30000
},
memcache_info: {
host: "127.0.0.1",
port: "31111",
pooled_connections: 200,
timeout: 20000
}
},
debug_server: true
};
对于Windows计算机,只需更改路径。 都很好!
然后在代码中,您只需键入:
var local = require('local.config.js');
fs.writeFile(local.config.log_file);
// etc
拥抱多元文化!!!
我也在Windows 7上,并且将Virtualbox与Linux(debian)来宾一起使用,我会推荐它,因为我自己可以在命令行中更快地执行一些操作,然后在Windows中单击arround。
另一个不错的功能是,如果将VM放在USB记忆棒上,则可以随身携带它,并在安装了Virtualbox Host的任何地方使用它,因此您可以随身携带整个开发环境。
在Windows中使用您喜欢的文本编辑器或浏览器根本没有问题,只需安装samba并将您的主目录安装到Windows中即可。 浏览器也是如此,因为VM只是LAN中的另一台计算机,而不是将浏览器指向本地主机,而是将其指向VM Ip,您就可以了。
这里最明显的缺点是,如果您没有Linux经验,那么您可能应该坚持使用Windows,因为这将需要一些时间才能使用它。
我真的很喜欢使用git bash在Windows上编码node.js: http : //blog.nodester.com/post/19902515151/tips-for-windows-users
运行VirtualBox似乎更快,更容易。 鉴于我仍然在生产前使用Virtual Box进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.