bra*_*ray 8 macos objective-c nstask node.js ionic
我正在使用具有命令行界面的Ionic.我想创建一个有助于执行某些命令的小型Mac应用程序.
在终端我cd Users/me/Desktop/Repos/ionic-project/myApp
改变之后我会例如ionic run
NSTask *task = [[NSTask alloc]init];
task.launchPath = @"/bin/bash";
task.currentDirectoryPath = @"cd Users/me/Desktop/Repos/ionic-tryouts/myApp";
task.arguments = @[@"ionic run"];
[task launch];
Run Code Online (Sandbox Code Playgroud)
但这给了我'工作目录不存在'.我已经在SO上阅读了相当多的主题.我的错是什么?
编辑:
感谢Christik的详细解答.我现在有这个代码:
NSTask *task = [[NSTask alloc]init];
task.launchPath = @"/usr/local/bin/ionic";
task.currentDirectoryPath = @"/Users/me/ionic-tryouts/myApp";
task.arguments = @[@"run"];
[task launch];
Run Code Online (Sandbox Code Playgroud)
现在我收到以下错误:env:node : No such file or directory. 我想这来自一个问题,即找不到node.js(离子是在节点之上构建的).我发现了这个问题 - 缺少正确名称的符号链接可能是原因.但是为节点设置符号链接没有帮助.有任何想法吗?
编辑2:我给了Christik正确的答案,即使我最终无法让它工作.我还在调查.也许这是节点安装错了.
编辑方式3:我看到一些帖子提到它可能会更好,如果自己的homebrew重新安装节点,因为自制软件安装它没有sudo.简短评论:没有帮助
如果您想使用bashlaunch ionic,则需要执行的等效命令是/bin/bash -c ionic run,因此您需要更改以下内容:
cd以获得绝对路径currentDirectoryPath/arguments为@[@"-c",@"ionic",@"run"],因为 NSTask 的每个参数都应代表数组的一项。/usr/bin/bash如果由于找不到其他一些工具而遇到问题,您可以尝试使用/bin/sh.
更新正如Aditya Vaidyam在这里指出的那样,您可能还需要设置环境变量(尤其是环境PATH变量),以模拟与终端相同的条件。如果你想知道设置了哪些环境变量,只需运行env命令即可。
| 归档时间: |
|
| 查看次数: |
596 次 |
| 最近记录: |