【问题标题】:Sublime Text says "No Build System" on Ubuntu/LinuxSublime Text 在 Ubuntu/Linux 上说“没有构建系统”
【发布时间】:2018-09-18 14:48:05
【问题描述】:

最近我切换到 Ubuntu/Linux 并搜索了一些好的文本编辑器,我发现 Sublime Text,我是编码的初学者,我在窗户。

下载 sublime text 后,我​​尝试在 javascript 中编写一些代码以查看它是否有效,但它显示“No Build System”,当我寻找它时,我没有找到任何linux 指南...在 Notepad++ 中,我所要做的就是单击运行,然后 ta da,输出屏幕就在那里。

我对 linux 或 sublime 文本了解不多,我的确切问题是如何运行并在输出屏幕中查看我的代码,目前我正在研究 Javascript 并且我没有了解什么是“构建系统”,我只想在 sublime 文本中输入一些基本代码并在屏幕上查看结果,所以如果你能帮助我,我将不胜感激。

这是问题的图片:

【问题讨论】:

  • 查看工具 -> 构建系统菜单。如果您的应用程序需要某种形式的“构建”,您只需要构建系统。如果你不知道这个问题的答案,那么这将是首先要调查的事情。
  • 如果它不需要构建它应该在我单击 ctrl-b 时运行我的代码,如果有一种方法可以在不构建的情况下运行我的程序,或者如果你告诉我如何在 linux 中构建 javascript,我会乐于。我也更新了我的帖子你可以看图。
  • 您可以创建一个 shell 脚本作为您的项目的一部分,该脚本使用您的主源文件启动 node(假设您使用的是 Node;您没有提到),然后使用“New从该菜单中构建系统”来告诉 Sublime 运行该脚本。

标签: javascript linux ubuntu sublimetext3


【解决方案1】:

为了解释您的问题,首先重要的是要意识到虽然该功能称为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 类型为 @987654336 的文件@ (JavaScript)。

有了这个,如果你选择Tools > Build System > AutomaticTools > Build System > JavaScript(菜单中的名称反映了你用于文件的名称),你应该可以使用Ctrl+B执行你的程序:

注意:这是一张较旧的图片,使用cmd而不是shell_cmd;这两个示例的工作方式相同,但推荐使用 shell_cmd,除非您有令人信服的理由不这样做。

您可以查看official documentation on build systems,了解有关构建系统中可用选项的更多信息。

重要提示:

  • 如果您收到类似command not found 或类似的错误,这意味着您输入的命令不正确,该程序未安装,或者您需要告诉您的计算机(以及 Sublime)在哪里可以找到通过修改你的PATH;你如何做到这一点是系统特定的。

  • 确保在尝试运行新文件之前至少手动保存一次;在您执行此操作之前,该文件尚未在磁盘上且无法执行,这可能会导致出现奇怪的错误。最好确保检查Tools > Save all on build 以确保您在构建时磁盘上的文件始终是最新的,但这不会保存还没有名称的新文件。

  • 我说过两次,但值得重复;如果您需要以任何方式 与命令进行交互,这对您不起作用(您无需进行任何更改)。这包括如果您尝试执行一个希望您与之交互的脚本(例如,它会询问您的姓名,然后打印它等等)。在这种情况下,您的程序似乎会永远挂起,因为它正在等待您无法提供的输入。

【讨论】:

  • 我现在看到了,我安装了 node 并粘贴了你写的代码,它顺利地打印了我的代码。谢谢你的一切。
猜你喜欢
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 2020-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
  • 1970-01-01
相关资源
最近更新 更多