29

我刚开始学习 JavaScript。这样做时,我厌倦了将 JavaScript 代码嵌入 HTML 文档以便在浏览器中运行。我认为直接在 Sublime 的控制台中运行我的脚本会很好,所以我不必离开编辑器。因此我试图创建一个 JavaScript 构建系统,因为 Sublime 没有自带。

我的想法是使用 Node.js 作为 JavaScript 解释器。我用 Linux Mint 的包管理器安装了它。据我所知,它工作得很好。假设我有一个包含以下 JavaScript 代码行的test.js文件:

console.log("Hello World");

当我跑

nodejs /path/to/test.js
在我的控制台中,我得到:
你好世界
但是,我不能让它与 Sublime 一起使用。我通过单击Tools / Build System / New Build System创建了一个新的构建系统。然后我输入了以下几行:
{
    "cmd": ["nodejs", "$file"]
}
据我所知,这一行是以下命令的 JSON 表示:
nodejs /path/to/current/file.ext
就像我说的,如果我在控制台中手动运行它,它工作得很好。如果我在 Sublime 中按 F7,这是Build的快捷方式,Sublime 的控制台就会出现。虽然是空​​的。

还有一件很奇怪的事情。尽管 Sublime 控制台的(不存在的)输出表明构建系统未配置为正确使用 Node.js,但当我不小心尝试运行非 JS 文件(例如Node.sublime 构建文件。这是 Sublime 控制台中显示的输出:

/home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build:2
    "cmd": ["nodejs", "$file"]
      ^

模块.js:434 var compiledWrapper = runInThisContext(wrapper, 文件名, true); ^ SyntaxError:意外的令牌: 在 Module._compile (module.js:434:25) 在 Object..js (module.js:464:10) 在 Module.load (module.js:353:32) 在 Function._load (module.js:311:12) 在 Array.0 (module.js:484:10) 在 EventEmitter._tickCallback (node.js:190:39) [在 0.1 秒内完成,退出代码为 1]

那么为什么在执行实际的 JavaScript 代码时没有得到任何输出呢?先感谢您!

4

13 回答 13

46
{
    "cmd": ["node","$file"]
}

在 Windows 中非常适合我,它在 sublime 窗口中显示输出。虽然我不知道如何在 sublime 之后停止服务器,但我必须搜索并杀死节点进程。

此外,检查节点是否在您的 PATH 中;)

希望对你有效。

于 2013-04-21T17:41:03.830 回答
43

Mac 用户,输入which node终端。它输出节点可执行文件的路径,在大多数情况下是/usr/local/bin/node. Tools > Build System > New Build System现在在 Sublime Text 中使用以下设置 创建一个新的构建系统 ( )。

{   
  "cmd": ["/usr/local/bin/node", "$file"],   
  "selector": "source.js"   
}
于 2014-01-06T05:41:33.003 回答
7

在 Ubuntu Linux 上测试。使用如下文件选择器:

{
  "cmd": ["node", "$file"],
  "selector": "*.js"
}
于 2013-12-16T15:40:13.417 回答
4

这是Windows的提示,

该线程的大多数答案都是正确的,但没有一个是完整的,并且至少没有答案说明如何杀死现有的 Node 进程,即使您能够在 sublime 中运行节点。因此,最终如果上述任何一种方法对您有用,您最终将始终手动杀死 Node。

这是我为“Windows”所做的:

  1. 打开 Sublime Text,转到“工具”->“构建系统”->“新构建系统”
  2. 上面将打开一个新文件,将下面的内容粘贴到那里,并将其保存为 nodejs.xxx (使用默认扩展名): { "cmd": ["c:/test.bat","$file"] }
  3. 创建一个文件( c:/test.bat )并将此内容(两行)粘贴到那里:

taskkill /F /IM "node.exe" "c:/Program Files/nodejs/node.exe" %1

  1. 保存,切换到 Sublime Text 并选择“工具”->“构建系统”->“nodejs”
  2. 打开任何 Nodejs 可执行文件并按 CTRL+B。
  3. 你可以走了。:)

享受点头。

于 2014-03-02T19:23:54.387 回答
3

下面链接的方法#2为我解决了:

http://www.wikihow.com/Create-a-Javascript-Console-in-Sublime-Text

于 2013-12-19T06:52:24.757 回答
2

这在 Windows7 中适合我

1) 打开 Sublime Text,转到“工具”->“构建系统”->“新建构建系统”

2) 粘贴此文本

{

"cmd": ["C:\\Program Files (x86)\\nodejs\\node","$file"]

}

\\ 转义字符

3) 另存为 Node.sublime-build

4) 新建一个js文件,按CTRL+B构建。

单击此处查看图像示例。

于 2016-01-19T20:18:44.403 回答
1

一般

"cmd":["node",$file]

会工作。但是,没有办法停止服务器。我找到了在新控制台中打开服务器并自动关闭它的最佳解决方案。我也可以与主管或节点检查员一起工作

"cmd" : ["start", "cmd.exe", "/C", "node", "$file"]

我希望它会有所帮助

于 2014-03-05T15:22:01.247 回答
1

只有当文件存在/保存在磁盘上时,我才能看到控制台输出。(对于匿名文件,我也看不到输出)

希望这可以帮助

于 2014-11-03T12:25:31.700 回答
1

在 Windows 上,以下配置有效:

{
    "cmd": ["C:\\Program Files\\nodejs\\node.exe", "$file"],
    "selector": "source.js"
}
于 2015-10-10T01:53:57.160 回答
1

我正在使用 Windows,并使用以下内容创建了一个新的构建系统:

{
"cmd": ["node", "$file"],
"selector": "source.js",
"working_dir": "${project_path:${folder}}",
"path": "C:\\Program Files\\nodejs"
}

然后在 Sublime 中运行一个带有 sucessul 的 JavaScript 文件。

我的 JavaScript 文件包含以下内容:

var a = 10;
var b = 20;

var resultado = a + b;

console.log('resultado:', resultado);

于 2019-11-30T21:31:01.727 回答
0

可能取决于环境变量——尝试使用节点的完整路径而不仅仅是“nodejs”。它在 Mac OS 上对我有用(例如 /usr/local/node 而不仅仅是节点)

于 2013-03-14T20:10:46.157 回答
0

如果一切都失败了,请检查 Node Supervisor.......您只需要更改代码,服务器将自行重新启动,这样您就可以实时看到更改 =)

于 2013-04-25T09:56:27.950 回答
-1

在 linux 上我使用这个,只要确保你在你的主文件上

{
    "shell_cmd": "pkill node ; node $file"
}
于 2016-03-13T14:24:55.963 回答