【问题标题】:dart2js throwing no such file or directory errordart2js 抛出没有这样的文件或目录错误
【发布时间】:2014-03-08 01:53:48
【问题描述】:

很简单,我的 /usr/local/bin/ 中有一个指向 dart2js 的链接,它在运行时会抛出重复的错误。

我跑了

sudo ln -s /Users/macbook/Development/dart/dart-sdk/bin/dart2js /usr/local/bin/dart2js

当从终端运行 dart2js 时,我会看到

...
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
/usr/local/bin/dart2js: line 9: 1=/Users/macbook/Development/dart/dart-sdk/bin/dart2js: No such file or directory
... etc

我想我只是错误地使用了链接,但我的知识还不够了解为什么。

【问题讨论】:

    标签: macos terminal dart dart2js


    【解决方案1】:

    我不久前遇到了这个问题并发布了这个问题Can't run dart command line script using a symlink

    我还添加了一个解决方法,它也可能对您的情况有所帮助 - 您可能需要稍微调整一下,但它应该可以帮助您入门。

    我现在使用的一种解决方法是在与 testscript.dart 相同的目录中创建一个名为“testscript”的 bash 脚本,并改为链接到该脚本

    我查找 bash 脚本的当前目录并启动 dart 脚本 (Getting the source directory of a Bash script from within)。

    #!/bin/bash
    ME="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"
    
    SOURCE="${BASH_SOURCE[0]}"
    while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
      DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
      SOURCE="$(readlink "$SOURCE")"
      [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
    done
    DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
    
    ${DIR}/${ME}.dart ${BASH_SOURCE[0]}
    

    而不是使用 io.Platform.script 获取命令的(符号链接)名称,我必须将其作为参数传递以使其在 dart 脚本中可用(我使用用于启动脚本的符号链接的名称作为参数在飞镖脚本中) 这样我必须区分脚本是否直接启动,否则使用 io.Platform.script 和 args[0]。

    我认为这一切都应该更容易。

    【讨论】:

    • 这就是解决办法。我会调查一下,谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 1970-01-01
    • 2010-12-04
    • 2020-04-09
    • 2021-10-31
    • 1970-01-01
    • 2013-01-14
    相关资源
    最近更新 更多