我对 Node.js 平台上的 Web 开发很感兴趣。我的主机操作系统是 Windows 7。设置开发环境的首选方法是什么。直接在主机上运行还是在基于 linux 的虚拟机上运行?这两种方法的优缺点是什么?
如果我使用虚拟机,我是否仍然可以在 Windows 中运行文本编辑器和 Web 浏览器(出于性能原因)?
我对 Node.js 平台上的 Web 开发很感兴趣。我的主机操作系统是 Windows 7。设置开发环境的首选方法是什么。直接在主机上运行还是在基于 linux 的虚拟机上运行?这两种方法的优缺点是什么?
如果我使用虚拟机,我是否仍然可以在 Windows 中运行文本编辑器和 Web 浏览器(出于性能原因)?
嗯,经验之谈,用Linux码头工人。
编辑使用 Docker。烘焙您的依赖项,在运行时挂载您的项目,仅固定到特定版本的 LTS 节点。我会在无法运行的项目上使用 2gb 的 docker 映像,这会导致被迫升级到新软件包的日子失去了。- 2018/04/10
但是对于过去 8 年在基于 linux 的环境中进行开发的人,以及在过去 6 个月中使用 nodejs 在 windows dot net 环境中开发软件的人来说,这是我的发现,无论是令人震惊还是其他...
相当于 Windows 的 debiansbuild-essentials
实际上是一个分散在 Internet 上的、分散在 Internet 上的、分散的、名称错误的 gui 安装程序集合,所有这些都需要特定的安装顺序。相比之下,这sudo apt-get install build-essentials
过于耗时且充满隐藏的陷阱。
在 Windows 上开发将使您养成混合大小写路径名称的坏习惯,除非您的团队要么有严格的政策要遵循/执行,否则这将是以后出现问题的滑坡。
虽然 windows 在路径中支持超过 256 个字符,但重要的工具却不支持。进入舞台左侧:rimraf 和 robocopy ......呃。
Windows终端很糟糕......默认shell也是如此:cmd.exe......
Powershell 的语法过于冗长,不符合我的口味……安装 Cmder 可以在一定程度上缓解这种情况,但是 Cmder 与 cmd.exe 交互的唯一方法是基本上将击键复制到运行 cmd.exe 的隐藏 Windows 终端。(洛鲁特)。Cmder 与更模块化的 shell(zsh、bash 等)一起工作得更好。. 更新:我现在使用带有 pshazz 和 scoop 的 powershell,实际上使用起来很愉快。
仍然改进了 shell 和终端的情况,windows 的 nodejs 仍然会假设你的环境变量是 %OF% %THE% %WINDOWS% %VARIETY%...而不是 $UNIX $STYLE。因此,您基本上将主要从 cmd.exe 使用 bower 和 npm ......更多啊。我似乎不再有这个问题,因为我已经混合了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
在windows上使用......更好的选择,你不必担心某种autoenv,因为nodist by design可以处理这个问题。choco install cmder nodejs python2
choco install python2
http://scoop.sh
,然后用它来安装 pshazz。tldr; 使用非虚拟机。出于以下原因之外的更多原因。
~/.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"
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
拥抱多元文化!!!
我也在 Windows 7 上并在 Linux ( debian ) 客户机上使用 Virtualbox,我会推荐它,因为我自己在命令行中做一些事情然后在 Windows 中单击 arround 更快。
另一个不错的功能是,如果您将 VM 放在 U 盘上,您可以随身携带并在任何安装了 Virtualbox 主机的地方使用它,这样您就可以随身携带整个开发环境。
在 Windows 中使用您喜欢的文本编辑器或浏览器完全没有问题,只需安装 samba 并将您的主目录挂载到 Windows 中即可。您的浏览器也是如此,因为虚拟机只是局域网中的另一台机器,而不是将浏览器指向本地主机,而是将其指向虚拟机 Ip,您就可以了。
明显的缺点是,如果您没有任何 Linux 经验,但您可能应该坚持使用 Windows,因为您需要一些时间才能进入它。
我真的很喜欢在 Windows 上使用 git bash 编码 node.js:http: //blog.nodester.com/post/19902515151/tips-for-windows-users
它似乎比运行 VirtualBox 更快更容易。鉴于我在投入生产之前仍然使用 Virtual Box 进行测试。