编写“批处理文件”以在Mac上的Node ...上执行CoffeeScript

时间:2012-01-24 19:22:09

标签: macos shell node.js batch-file coffeescript

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

.\node_modules\.bin\coffee .\lib\cli --html="index.htm" --whichBuild="configs/whichBuild.xml" %*

那是:

  • 我致电.\node_modules\.bin\coffee.cmd
  • 告诉它执行.\lib\cli.coffee
  • 传递参​​数--html="index.htm" --whichBuild="configs/whichBuild.xml"
  • 并且还在命令行上传递用户给我的任何参数。

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

我想要一些简单的东西,我可以告诉我们的构建人员“运行myCommand arg1 arg2并且它会起作用。”我在Windows上有这个,但在Mac上我很无能为力。

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

2 个答案:

答案 0 :(得分:3)

首先,您可以使用node.js web site上的安装程序在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魔法一起使用。因此:#!/usr/local/bin/node ...虽然如果您希望您的脚本能够在可能在不同位置安装node.js的不同系统上运行,#!/usr/bin/env node是一个更兼容的选项。

清除泥土? : - )

答案 1 :(得分:3)

您可以确定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确保文件可执行,现在从命令行运行脚本应该像{{1}一样简单}

修改

考虑到这一点,上面的脚本实际上可能无法正常工作,因为Mac不会安装node.js,我认为这是CoffeeScript所必需的。

恕我直言,您可以更好地花时间记录如何安装节点和放大器。本地咖啡脚本,而不是创建脚本来解决没有安装脚本的开发人员。