我刚开始学习 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"] ^那么为什么在执行实际的 JavaScript 代码时没有得到任何输出呢?先感谢您!模块.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]