编写一个"batch file"以在节点上执行 CoffeeScript...在 Mac 上



在Windows上,我有以下.cmd文件:

.node_modules.bincoffee .libcli --html="index.htm" --whichBuild="configs/whichBuild.xml" %*

即:

  • 我呼叫.node_modules.bincoffee.cmd
  • 告诉它执行.libcli.coffee
  • 传递参数--html="index.htm" --whichBuild="configs/whichBuild.xml"
  • 并将用户在命令行上给我的任何参数传递给它

在Mac上,我不知道该怎么办。node.execoffee.cmd不会出现。这些事情是如何完成的?

我想要一些简单的东西,我可以告诉我们的构建人员"运行myCommand arg1 arg2,它就会工作。"我在Windows上有,但在Mac上我一无所知。

同样值得注意的是:我的Windows方法的一个很好的特性是,我们的构建人员不必安装node、npm或coffee脚本或任何东西。他只是从源代码管理中获取一个目录,其中包含node.execoffee.cmd等。Mac的类似功能是非常需要的。

您可以确定OS X安装了Ruby的一个版本,因此这个小Ruby脚本应该与您在OS X上编写和工作的内容等效。

#!/usr/bin/env ruby
args = ARGV.join(" ")
system %Q{./node_modules/coffee-script/bin/coffee ./lib/cli --html="index.htm" --whichBuild="configs/whichBuild.xml" #{args}}

因此,将其写入一个名为myMacCommand的文本文件中,然后通过运行chmod +x myMacCommand来确保该文件是可执行的,现在从命令行运行脚本应该像./myMacCommand --option1=blah --option2=blah 一样简单

编辑:

仔细想想,上面的脚本可能实际上不起作用,因为Mac不会安装node.js,我相信CoffeeScript需要安装node.js。

IMHO,您的时间可能会花在记录如何安装node&coffee脚本,而不是创建一个脚本来绕过没有安装它们的开发人员。

首先,您可以使用node.js网站上的安装程序在Mac上安装node.js。

请记住,OSX是unix的一种风格,因此您可以使用各种脚本语言。这些可以用来制作"shell脚本"。在OSX(和Linux一样)中,常见的脚本语言是"bash"。当你在OSX中启动终端时,你正在运行一个"交互式"shell,它可以用来运行shell脚本或其他命令。

Shell脚本是文本文件,通常以一行开头,该行标识脚本将使用的解释器。例如#!/bin/bash#!/usr/bin/ruby#!/usr/local/bin/tclsh。您会注意到,每一个都以#开头,被称为"shell magic"或"shbang"。

如果node.js是从nodejs.org的安装程序包安装在OSX中的,那么您将拥有/usr/local/bin/node,它可以与shell magic一起使用。因此:#!/usr/local/bin/node。。。不过,如果您希望您的脚本能够在可能在不同位置安装了node.js的不同系统上运行,#!/usr/bin/env node是一个更兼容的选项。

清澈如泥?:-)

最新更新