【发布时间】:2013-01-03 20:26:00
【问题描述】:
我刚开始学习 JavaScript。这样做时,我厌倦了将我的 JavaScript 代码嵌入到 HTML 文档中以便在浏览器中运行它。我认为直接在 Sublime 的控制台中运行我的脚本会很好,所以我不必离开编辑器。因此我试图创建一个 JavaScript 构建系统,因为 Sublime 没有。
我的想法是使用 Node.js 作为 JavaScript 解释器。我用 Linux Mint 的包管理器安装了它。据我所知,它工作得很好。假设我有一个包含以下 JavaScript 代码行的文件 test.js:
console.log("Hello World");
当我跑步时
nodejs /path/to/test.js在我的控制台中,我得到:
Hello World但是,我不能让它与 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-build 文件。这是 Sublime 控制台中显示的输出:
/home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build:2 "cmd": ["nodejs", "$file"] ^module.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.1s 完成,退出码 1]
那么为什么在执行实际的 JavaScript 代码时没有得到任何输出呢?先感谢您!【问题讨论】:
-
Sublime 没有内置的,但它确实带有一个可以安装的包...
-
谢谢@JohnnyHK。我仍然不知道为什么我的自定义构建系统不起作用。但是,使用上面提到的包,我只需按 Alt + R 即可获得我想要的控制台输出!这个包还让你可以选择告诉它在 PATH 中哪里可以找到 Node.js。太好了!
-
尝试在构建系统中仅指定
node而不是nodejs。 -
我也卡住了,似乎没有任何效果。请帮忙:stackoverflow.com/questions/25515319/…
标签: javascript node.js sublimetext2