【问题标题】:Sublime Text 3: Build System - node.js. NPM module not executingSublime Text 3:构建系统 - node.js。 NPM 模块未执行
【发布时间】:2014-01-17 15:02:35
【问题描述】:

我正在尝试在 sublime text 3 构建系统中执行 node-dev。 node-dev 在我的路径中:

当我运行这个构建脚本时:

{
  "cmd": ["node-dev", "$file"],
  "selector": "*.js"
}

我收到此错误,这也表明 npm 在我的路径中。

然而,当我使用 node 而不是 node-dev 运行相同的构建脚本时,它执行得很好。

我还尝试包含指向 node-dev bin 文件夹的“路径”变量,但这根本没有帮助。

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 您可以尝试在 cmd 标签中更新node-dev 的完整路径吗?例如:["c:\nodejs\bin\node-dev", "$file"]

标签: javascript node.js build sublimetext3


【解决方案1】:

以下在 Windows 上的 Sublime Text 3 中为我工作

  1. 工具 -> 构建系统 -> 新构建系统...
  2. 在新文件中输入以下文本
  3. 将文件另存为“nodejs.sublime-build”
{
  "shell_cmd": "node ${file}",
  "selector" : "source.js"
}

先决条件是安装 node.js

【讨论】:

  • 我不得不使用下面的{ "shell_cmd": "node ${file/ /\\\\ /}", "selector" : "source.js" },因为否则 Sublime Text 不会解析文件名中的空格。
  • 也可以在 Linux 中使用
  • 不推荐使用裸$file,因为正如@Peteris 指出的那样,它不能正确处理文件名中的空格。但这不是崇高的事情。 shell_command 被传递给系统进行解释,因此是系统命令处理器有问题。最好使用 node \"$file\" 代替,以便为 shell 引用文件名(正则表达式也可以,但可以说引用更容易解释)。
【解决方案2】:

崇高的文本文档:

http://sublimetext.info/docs/en/reference/build_systems.html

外壳

可选。如果为 true,则 cmd 将通过 shell 运行(cmd.exe,bash...)

尝试添加“shell : true

{
  "cmd": ["node-dev", "$file"],
  "selector": "source.js",
  "windows" : {
     "shell": true
  }
}

【讨论】:

  • 我认为这应该被标记为答案。它解决了我的问题。谢谢!
  • Windows 上的 .sublime-build 文件在哪里?它不在\AppData\Roaming\Sublime Text 3\Packages
  • 我使用了"cmd": ["node", "$file"], 而不是node-env。谢谢
【解决方案3】:

Sublime Text 3 的命令不正确 :)

这是运行节点作为构建系统的一个示例:

{
    "shell_cmd": "taskkill /F /IM node.exe & node ${file}"
}

请注意,数组版本不像 Sublime Text 2 那样工作。

【讨论】:

  • 我认为您应该在 ${file} 周围添加一些 [转义] 引号。如果文件路径中有空格,则命令被破坏。 "shell_cmd": "taskkill /F /IM node.exe & node \"${file}\""
  • 其实这是让它在 Windows 10 和 ST3 中工作的唯一方法
【解决方案4】:

如果您是 Windows 用户。

尝试应用以下 sn-p

{
    "selector": "source.js",
    "cmd": ["C:\\Program Files\\nodejs\\node", "<", "$file"],
    "windows": {
        "shell": true
    }
}

将此保存为 node.sublime-build 文件。

更多信息,您可以参考http://docs.sublimetext.info/en/latest/了解更多信息。

【讨论】:

    【解决方案5】:

    对于 macOS,这适用于 Sublime Text 3:

    {
        "cmd": ["node","$file","$file_base_name"],
        "working_dir": "${project_path:${folder}}",
        "selector":"source.js"
    }
    

    选择器注释

    我的选择器设置是:

    "selector":"*.js"
    

    OdatNurd 建议:

    原因是选择器不正确;它与文件不匹配 名称,它匹配语法范围(即它基于使用的语法 无论文件扩展名如何);将其从 *.js 更改为 source.js 应该让它工作。

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 2014-10-21
      • 2013-10-14
      • 2018-04-27
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多