javascript - Sublime Text在Ubuntu/Linux上说“No Build System”

标签 javascript linux ubuntu sublimetext3

最近我切换到Ubuntu/Linux并寻找一些好的文本编辑器,我发现了Sublime文本,我是一个非常初级的编程人员,我在windows中使用了Notepad++。
下载了sublime文本后,我试图用javascript编写一些代码,看看它是否有效,但它说“没有构建系统”,当我查找它时,我没有找到任何linux指南。。。在Notepad++中,我只需要单击run和ta da,输出屏幕就在那里。
我不太了解linux或sublime文本,我的确切问题是如何在输出屏幕上运行和查看我的代码,目前我正在使用Javascript,我不知道什么是“构建系统”,我只想在sublime文本中键入一些基本代码并在屏幕上查看结果,所以如果你能帮助我,我将不胜感激。
这是一张问题的图片:
An image demonstrating the problem

最佳答案

为了解释你的问题,首先要意识到,尽管这个特性被称为build,但它同样适用于运行一个解释过的程序,就像它实际构建任何东西一样;不要把它看作是一个“构建”工具,而应该把它看作是一个“运行一些外部程序来做某事”工具。
尽管如此,Sublime预装了几种不同语言的不同构建系统,但JavaScript并不是其中之一。可能这是因为通常不清楚某个特定的JavaScript文件是要在浏览器中使用,还是通过类似于node的方式执行,但这只是一个猜测。
在您的例子中,文本No build system实际上告诉您,您已经告诉Sublime为您正在编辑的文件类型自动选择适当的生成系统,但是它没有找到,因此它无能为力。
解决这个问题的方法是要么安装一个包含JavaScript构建系统的第三方包(请参见Package Control),要么自己创建一个包。
Sublime的一个很好的经验法则是,如果有一个命令可以从命令提示符执行,该命令将执行您想要的操作,并且您不需要与该命令交互(即,它不需要在执行某项操作之前或执行某项操作时问您问题),则可以设置Sublime来为您运行该命令。
可以用来执行JavaScript的一个工具是NodeJS,它提供一个名为node的命令,如果您安装了该命令,它可以执行JavaScript文件:

tmartin:dart:~> cat sample.js 
console.log("Hello, world!")
tmartin:dart:~> node sample.js 
Hello, world!

因为这是一个命令,我们可以从终端执行来做我们想做的事情,而且它不需要我们与它交互来告诉它如何做任何事情,所以我们可以设置一个构建系统来使用它。
作为一个这样做的例子,从菜单中选择Tools > Build System > New Build System...,然后用下面的代码替换文件的内容,然后将其保存在Sublime默认为类似JavaScript.sublime-build的位置:
{
    "shell_cmd": "node \"${file}\"",
    "selector": "source.js"
}

这只是说,在执行此生成时,Sublime应使用命令node并为其提供当前正在编辑的文件的名称,并且此生成系统适用于source类型的文件(JavaScript)。
这样,如果您选择jsTools > Build System > Automatic(菜单中的名称反映您用于文件的名称),您应该能够使用Ctrl+B来执行您的程序:
注意:这是一个较旧的图像,使用Tools > Build System > JavaScript而不是cmd;两个示例的工作方式相同,但建议使用shell_cmd方法,除非您有令人信服的理由不这样做。
Example Sublime Build
您可以查看official documentation on build systems以了解有关构建系统中可用选项的更多信息。
重要提示:
如果出现类似于shell_cmd的错误,则意味着您输入的命令不正确,该程序未安装,或者您需要通过修改command not found来告诉计算机(从而升华)在何处查找该命令;具体操作方式取决于系统。
在尝试运行一个新文件之前,请确保至少手动保存一次;在执行之前,该文件尚未在磁盘上并且无法执行,这可能会导致出现奇怪的错误。确保选中PATH以确保生成时磁盘上的文件始终是最新的,这是一个好主意,但这不会保存尚未命名的新文件。
我说了两次,但它需要重复;如果你需要以任何方式与命令交互,这对你来说都不起作用(没有改变你的目的)。这包括如果你试图执行一个脚本,希望你与它交互(例如,它问你的名字,然后打印它等)。在这种情况下,您的程序似乎会永远挂起,因为它在等待您无法提供的输入。

关于javascript - Sublime Text在Ubuntu/Linux上说“No Build System”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52389240/

相关文章:

google-app-engine - 从 Ubuntu 命令行启动 google course builder

javascript - jQuery 中 AJAX 回调返回值处理

javascript - 在 javascript 中输入带有事件的文本字段并在目标元素中自动填充值

javascript - React Native/Javascript 中两个数组的合并

ruby - 找不到 ubuntu 上的 Rails - 但在我的 gem 安装列表中

Python子进程Exec格式错误

javascript - 调用 eval 的 Jest 测试函数

python - 如何将文件中的每一行作为参数传递给脚本?

c - 如何将文件捆绑/包含并使用到 C - linux 中的可执行文件中?

ubuntu - 深色背景上的 Aptana Studio 黑色 IBeam 光标