我对Node.js平台上的Web开发感兴趣。我的主机操作系统是Windows 7.设置开发环境的首选方法是什么。直接在主机或基于Linux的虚拟机上运行它?这两种方法之间有什么利弊?
如果我使用虚拟机,我是否仍然可以在Windows中运行文本编辑器和Web浏览器(出于性能原因)?
答案 0 :(得分:40)
从经验来看,使用 Linux Docker。
编辑使用Docker。烘焙依赖项,在运行时挂载项目,仅固定到特定版本的LTS节点。我在一个不可运行的项目上采用了2GB的docker镜像,导致失去被迫升级到新软件包的日子。 - 2018/04/10
但是从过去8年在基于Linux的环境中开发的人,以及在Windows网络环境中使用nodejs开发软件的过去6个月,这是我的发现,令人震惊或其他......
相当于debians build-essentials
的窗口实际上是一个完全不同的庞大的病人名为gui的集合,只有分散在互联网上的安装人员都需要特定的安装顺序。与sudo apt-get install build-essentials
相比,这是非常耗费时间并且充满了隐藏的陷阱。
在Windows上开发将允许您使用混合大小写路径名称的坏习惯,除非您的团队要么遵循/强制执行严格的策略,否则这将是以后出现问题的滑坡。
< / LI>虽然Windows在路径中支持超过256个字符,但重要的工具却没有。进入左侧阶段:rimraf和robocopy ......呃。
windows终端很糟糕...默认shell也是如此:cmd.exe ...
Powershell的语法过于冗长,而且不符合我的口味......安装Cmder对此有所帮助,但Cmder与cmd.exe接口的唯一方法是将按键复制到隐藏的窗口终端运行cmd.exe。 (lolwut)。使用更模块化的shell(zsh,bash等),Cmder可以更好地工作。。 update :我现在使用带有pshazz和scoop的powershell,这实际上很有用。
仍然改进了shell和终端的情况,nodejs为
windows仍会假设你的环境变量是%OF %% THE%
%WINDOWS %% VARIETY%...不是$ UNIX $ STYLE。所以你基本上就是
使用bower和npm主要来自cmd.exe ...更多呃。我不会&#39;似乎已经出现了这个问题,因为我已经将cross-env
和指挥官或者yargs混合在一起。
您还需要为Windows安装python,这不是问题,因为choco存在并让您回到那里。 更新:看看boxstarter,有助于使用食谱自动化您的新机器设置(或者您实际上可以毕业使用ansible或salt)。
经验丰富的python,ruby开发人员会告诉你,当你需要重新访问它们时,旧项目将需要他们的引擎孤岛版本(升级到新版本大多不合适或不实用,请阅读:兔子洞),所以你想要像rvm和virtualenv这样的东西......
nvm(仅适用于unix系统linux和macosx),因为它是
bash脚本的集合。我建议使用ZSH作为shell以及Zgen和Tarrasch/zsh-autoenv
插件。
nodist
...吧更好的选择,你不需要担心某种类型的autoenv,因为nodist by design处理这个问题。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
的引用:
答案 1 :(得分:21)
我们有一个系统,通过它我们只使用配置文件,它处理我们所有的问题,如路径差异("c:\blarg"
vs "~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
拥抱多元文化!!!
答案 2 :(得分:5)
我也在Windows 7上使用Virtualbox和Linux(debian)客户,我推荐它,因为我自己更快地在命令行中执行某些操作然后在Windows中单击arround。
另一个不错的功能是,如果您将VM放在USB记忆棒上,您可以随身携带并在安装Virtualbox主机的任何地方使用它,这样您就可以随身携带整个开发环境。
在Windows中使用您喜欢的文本编辑器或浏览器完全没问题,只需安装samba并将您的主目录安装到Windows中即可。 您的浏览器也是如此,因为VM只是LAN中的另一台计算机,而不是将您的浏览器指向localhost,将其指向VM Ip并且您没事。
显而易见的是,如果你没有任何Linux使用经验,你应该坚持使用Windows,因为它需要你花一些时间才能进入它。
答案 3 :(得分:2)
只是我的两分钱甚至更少:
我建议你第三个选择:双重安装windows / ubuntu设置(最好是ubuntu dist,这是最友好的)并研究这个选项,这样你就会更熟悉linux / unix甚至iOS甚至可以让你更好地理解windows和更好的程序员。有时虚拟框太慢,而linux对资源非常有效。
如果您有能力安装虚拟机,您还可以安装一个linux distribution,并熟悉这个基于Web构建的操作系统的语言/系统
答案 4 :(得分:0)
我真的很喜欢使用git bash在windows上编码node.js: http://blog.nodester.com/post/19902515151/tips-for-windows-users
然后运行VirtualBox似乎更快更容易。鉴于在投入生产之前我仍然使用Virtual Box进行测试。