【问题标题】:Unable to run Haml or Sass on Terminal. Using OSX Lion. RVM, GCC, Ruby, Rails, Haml, Sass installed无法在终端上运行 Haml 或 Sass。使用 OSX 狮子。安装了 RVM、GCC、Ruby、Rails、Haml、Sass
【发布时间】:2012-08-15 06:23:13
【问题描述】:

我对此很陌生,所以我会提供尽可能多的细节:

使用 Mac OSX 10.7.4

今天安装: 文本伴侣 1.5.11 韦恩·塞甘 (Wayne Seguin) 的 RVM 1.15.5 海湾合作委员会 10.7 红宝石 1.9.3 导轨 3.2.8 哈姆 3.1.7 萨斯 3.2.1

哈姆指令:

要从命令行运行 Haml,只需使用

haml input.haml output.html

当我输入上述命令时,我的终端会响应:

Errno::ENOENT: No such file or directory - input.haml

Use --trace for backtrace.

当我输入时:

--trace

返回:

-bash: --trace: command not found

与 Sass 有类似问题:

$ sass --watch style.scss:style.css
>>> Sass is watching for changes. Press Ctrl-C to stop.
Errno::ENOENT: No such file or directory - style.scss
Use --trace for backtrace.

我是否需要先创建 input.haml 和 output.haml 文件并将它们放在某个目录中?如果是这样,有人可以给我一个非常具体的文件夹路径吗?

Sass 文件的类似问题——它们是否需要位于特定文件夹中才能让终端找到它们?

而且.. 不确定为什么 --trace 不起作用...

有人可以告诉我如何解决这个问题吗?我只熟悉 HTML/CSS,并被我的团队要求学习 Haml/Sass。

【问题讨论】:

    标签: osx-lion haml sass


    【解决方案1】:

    您没有正确使用--trace 命令。在 UNIX 命令行中,在命令行中运行的程序(在 命令行界面 中也称为 cli)使用以 --- 开头的称为 flags 的选项.因此,在没有使用过 HAML 代码的情况下,我看到这是一个这样使用的标志:

    ➜  ~  uname -a
    Darwin Angel.local 12.0.0 Darwin Kernel Version 12.0.0: Sun Jun 24 23:00:16 PDT 2012; root:xnu-2050.7.9~1/RELEASE_X86_64 x86_64
    ➜  ~  cat > test.haml
    #content
      .left.column
        %h2 Welcome to our site!
        %p= print_information
      .right.column
        = render :partial => "sidebar"
    ^C
    ➜  ~  haml test.haml 
    Exception on line 4: undefined local variable or method `print_information' for #<Object:0x007f9844896cd0>
      Use --trace for backtrace.
      Use --trace for backtrace.
    ➜  ~  haml test.haml --trace
    test.haml:4:in `block in render': undefined local variable or method `print_information' for #<Object:0x007fd83b9f8650> (NameError)
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/engine.rb:191:in `eval'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/engine.rb:191:in `render'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/exec.rb:281:in `process_result'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/exec.rb:41:in `parse'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/exec.rb:21:in `parse!'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/bin/haml:9:in `<top (required)>'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/bin/haml:19:in `load'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/bin/haml:19:in `<main>'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `eval'
        from /Users/atma/.rvm/gems/ruby-1.9.3-p194/bin/ruby_noexec_wrapper:14:in `<main>'
    ➜  ~  
    

    除此之外,我刚刚通过 RVM 在 MacOSX 10.8 上安装了 haml gem,并且工作正常。运行 ruby filename.haml 也可能会带来有用的信息。

    【讨论】:

    • 感谢您提供的跟踪示例。现在我知道如何使用它,它确实可以正常工作。
    【解决方案2】:

    input.haml 应该存在并且应该是一个haml 文件。 output.html 是存储输出的位置(如果存在,将被覆盖)

    这些文件可以在您想要的任何位置,但如果它们不在当前目录中,您需要相应地调整路径。

    同样对于 sass style.scss 必须存在并且生成的 CSS 将输出到 style.css

    【讨论】:

    • 那么下面的信息是否表明我需要将我的文件放入rubies bin 区域? “输入”仍然不明白。我为我缺乏这方面的知识而道歉。这周我会向我的一位同事寻求帮助。 1.9.3-p194:004 > File.open("/Users/whisperland/desktop/input.haml") => # 1.9.3-p194:005 > hamel input.haml output.html NameError: undefined local variable or method input' for main:Object from (irb):5 from /Users/whisperland/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in
      '
    • 你从命令提示符运行haml input.haml output.html,而不是从irb
    • 谢谢@Frederick。我也在那里试过。但这就是我所处的新手“水平”。
    • Doras-MacBook-Pro:~whisperland$ haml input.haml output.html --trace /Users/whisperland/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1 .7/lib/haml/exec.rb:163:in initialize': No such file or directory - input.haml (Errno::ENOENT) from /Users/whisperland/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/exec.rb:163:in open' 来自 /Users/whisperland/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/ exec.rb:163:in open_file' from /Users/whisperland/.rvm/gems/ruby-1.9.3-p194/gems/haml-3.1.7/lib/haml/exec.rb:110:in process_result' 来自 /Users/whisperland/.rvm/gems/ruby-1.9.3-p194/gem
    • 需要先创建input.haml
    【解决方案3】:

    使用 Google Chat 屏幕共享,我的在线同事查看了我的终端活动,然后给了我一些命令,以便可以找到文件。接下来,他们让我在 input.haml 文档中添加了一行简单的“Hello World”用于测试。

    今天 haml 现在可以找到文件了,当我向它发出有关 input.haml 和 output.html 文件的命令时,它成功地将数据从输入传输到输出。

    所以问题是我缺乏关于如何在终端中访问正确目录的知识。

    Doras-MacBook-Pro:~ whisperland$ cd/Users/whisperland/documents/ haml input.haml
    -bash: cd/Users/whisperland/documents/: No such file or directory
    
    Doras-MacBook-Pro:~ whisperland$ cd documents
    
    Doras-MacBook-Pro:documents whisperland$ ls
    
    document.haml                      output.html
    input.haml                         typography.rtf
    
    
    Doras-MacBook-Pro:documents whisperland$ haml input.haml
    hello world
    
    Doras-MacBook-Pro:documents whisperland$ haml input.haml output.html
    

    【讨论】:

    • 我刚刚遇到了使用 OSX 命令提示符的指南,该指南解释了访问/更改目录,如果您需要比帮助命令提供的更多信息,请使用 man 命令等。这是链接 @987654321 @
    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2010-12-01
    • 2012-04-12
    • 2017-04-10
    相关资源
    最近更新 更多