在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.exe
和coffee.cmd
不会出现。这些事情是如何完成的?
我想要一些简单的东西,我可以告诉我们的构建人员“运行myCommand arg1 arg2
并且它会起作用。”我在Windows上有这个,但在Mac上我很无能为力。
另外值得注意的是:我的Windows方法的一个特性很好,我们的构建人员不必安装节点或npm或咖啡脚本或任何东西。他只是从源代码管理中获取了一个目录,其中包含node.exe
,coffee.cmd
等所有打包的目录。 Mac的类似功能非常需要。
答案 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所必需的。
恕我直言,您可以更好地花时间记录如何安装节点和放大器。本地咖啡脚本,而不是创建脚本来解决没有安装脚本的开发人员。