我刚开始学习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。像我说的那样,如果我手动在控制台中运行这个命令,它可以正常工作。如果我按F7键,在Sublime中启动构建系统,Sublime的控制台会出现,但是它是空的。
另一个奇怪的事情是,即使Sublime的控制台输出(不存在)表明构建系统没有被正确配置以正确地与Node.js工作,但是当我错误地尝试运行非JS文件时,例如Node.sublime-build文件,我得到了一些Node.js错误。这是在Sublime的控制台中显示的输出:/home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build:2"cmd": ["nodejs", "$file"]^
module.js: 434 var compiledWrapper = runInThisContext(wrapper,filename,true); ^ SyntaxError:意外的令牌: 在模块.js中(Module._compile):434:25在执行实际的JavaScript代码时,为什么我没有获得任何输出?谢谢你提前!错误信息如下:at Object..js (module.js:464:10),在模块加载(module.js:353:32)时,通过Function._load (module.js:311:12)函数完成,同时也存在于数组[0]中(module.js:484:10),EventEmitter._tickCallback(node.js:190:39)所触发的回调函数已经结束[以退出码1结束,共用0.1秒]。
我的想法是使用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。像我说的那样,如果我手动在控制台中运行这个命令,它可以正常工作。如果我按F7键,在Sublime中启动构建系统,Sublime的控制台会出现,但是它是空的。
另一个奇怪的事情是,即使Sublime的控制台输出(不存在)表明构建系统没有被正确配置以正确地与Node.js工作,但是当我错误地尝试运行非JS文件时,例如Node.sublime-build文件,我得到了一些Node.js错误。这是在Sublime的控制台中显示的输出:/home/baerenfaenger/.config/sublime-text-2/Packages/User/Node.sublime-build:2"cmd": ["nodejs", "$file"]^
module.js: 434 var compiledWrapper = runInThisContext(wrapper,filename,true); ^ SyntaxError:意外的令牌: 在模块.js中(Module._compile):434:25在执行实际的JavaScript代码时,为什么我没有获得任何输出?谢谢你提前!错误信息如下:at Object..js (module.js:464:10),在模块加载(module.js:353:32)时,通过Function._load (module.js:311:12)函数完成,同时也存在于数组[0]中(module.js:484:10),EventEmitter._tickCallback(node.js:190:39)所触发的回调函数已经结束[以退出码1结束,共用0.1秒]。
node
而不是nodejs
。 - Mrchief