没有Sublime Text Build System的F#包

时间:2017-06-25 04:25:39

标签: build f# mono sublimetext3 paket

我开始使用F#并试图让它与Sublime Text 3一起使用包https://github.com/fsharp/sublime-fsharp-package。在使用Package Control安装软件包之后,我看到F#在Sublime Text的底栏中显示为可用语言,语法高亮似乎或多或少都有效,据我所知,但F#的构建系统未能按原样出现。

所以,试图解决问题,我运行" build.sh install"并收到错误,"无法打开程序集' .paket / paket.bootstrapper.exe':没有这样的文件或目录。"我有点卡住了。非常感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

根据你所做的评论,你似乎对OS X的Unix基础有点不熟悉。我先解释一下,然后我会建议你尝试一下可以解决你的问题。

从技术上讲,名称以.开头的文件或目录不是"保留给系统"就像你说的那样;他们隐藏。现在,Finder不允许您创建名称以.开头的文件或目录,因为Apple并不想要对所有技术支持电话进行调查来自那些不了解隐藏文件功能的人:"我将文件命名为... more important stuff for work,现在它已经消失了!帮助!"但是,如果你在终端应用程序中,那么你可以轻松创建.作为第一个字母的文件或目录:mkdir .foo应该有效。当您执行ls时,您将无法看到它,但ls -aa代表"所有")将显示所有文件,包括隐藏文件。您还可以cd .foo并在隐藏的.foo目录中创建文件 - 当.foo文件夹无法显示在Finder中时,它将完全可以在终端,以及您可能编写的任何F#程序。

因此,当您说您克隆https://github.com/fsprojects/Paket但未能包含.github.paket目录时,我认为您根本不知道如何看待它们。您无法在Finder中看到它们(嗯,you can if you jump through a couple of hoops,但我认为这不值得付出努力),但您可以通过ls -a看到它们。只需打开终端,运行cd /Users/Username/Paket,然后运行ls -a我就会发现.paket.github目录确实是由{git clonepaket.bootstrapper.exe目录创建的1}}命令。

所以你应该尝试的是:

  1. 转到https://github.com/fsprojects/Paket/releases/latest
  2. 下载paket.exe/Users/Username/Downloads个文件。将它们放在cd /Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master中(或者默认的OS X下载目录,如果它不同的话 - 只要它在你可以轻松找到它们的地方)。
  3. 打开终端应用。
  4. 转到您已解压Sublime Text 3软件包的目录。即,在终端应用程序中,运行ls -a
  5. 运行.paket,看看是否有mkdir .paket目录。
  6. 如果不存在,请运行cd .paket
  7. 现在执行.paket,以便您进入sublime-fsharp-package-master下的隐藏ls目录。
  8. 现在执行paket.bootstrapper.exe并查看是否有cp /Users/Username/Downloads/paket.bootstrapper.exe .个文件。
  9. 如果它不存在,则复制您之前下载的.exe文件:
    1. cp /Users/Username/Downloads/paket.exe .
    2. cd ..
  10. 重要:现在执行/Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master/返回/Users/Username/Library/Application\ Support/Sublime\ Text\ 3/Packages/sublime-fsharp-package-master/build.sh install目录。
  11. 现在,请尝试将其./build.sh install运行,而不是运行./build.sh Install。 (并且还尝试.,因为我非常确定首都是必要的。)
  12. (顺便说一下,如果你不熟悉我在步骤9,10和11中使用的语法,我在命令中使用了一个..或两个点.,那些是一个长期存在的Unix习语:..表示"当前目录"和build.sh表示"父目录"。)

    我刚查看了您正在运行的cd脚本,似乎假设您已经在程序包的基本目录中完成了sublime-fsharp-package-master (运行脚本之前的cd目录)。这可以解释为什么它失败了:你是从另一个目录运行它,而不是先做 <script type="text/javascript"> $(function(){ var accessToken = '271323200.1677ed0.67c49d5002704bc09c3c77320ec138a2'; // use your own token var date = new Date(parseInt(data.data[i].created_time) * 1000); m = date.getMonth(); d = date.getDate(); y = date.getFullYear(); var month_names = new Array ( ); month_names[month_names.length] = "Jan"; month_names[month_names.length] = "Feb"; month_names[month_names.length] = "Mar"; month_names[month_names.length] = "Apr"; month_names[month_names.length] = "May"; month_names[month_names.length] = "Jun"; month_names[month_names.length] = "Jul"; month_names[month_names.length] = "Aug"; month_names[month_names.length] = "Sep"; month_names[month_names.length] = "Oct"; month_names[month_names.length] = "Nov"; month_names[month_names.length] = "Dec"; $.getJSON('https://api.instagram.com/v1/users/self/media/recent/?access_token='+accessToken+'&callback=?',function (insta) { $.each(insta.data,function (photos,src) { if ( photos === 200 ) { return false; } // template $( '<div class="col-xs-6 col-sm-4 col-md-3 col-lg-2 grip_wrap">' + '<div class="grip_hang_topp"></div>' + '<div class="col-xs-12 grip">' + '<a class="fancybox zero" rel="gallery1" href="' + this.images.standard_resolution.url + '">' + '<img src="' + this.images.standard_resolution.url + '" />' + '</a>' + '<div class="description">' + this.user.username + '</div>' + '<span class="right col-xs-12 col-md-6 col-lg-12 heart-wrap floated">' + '<i class="fa fa-heart">'+ '</i>' + this.likes.count +' likes'+'</span>' + '<span class="left col-xs-12 col-md-6 col-lg-12 comment-wrap floated">' + '<i class="second fa fa-comment">'+ '</i>' + this.comments.count +' comments'+'</span>' + (date.getMonth()+1) + '/' + date.getDate() + '/' + date.getFullYear() + '</div>' + '<div class="grip_hang_bott"></div>' + '</div>' ).appendTo('#instafeed'); }); }); }); </script> 。因此,为什么我将第10步标记为重要:我认为这是问题的根本原因。