在打开 VS Code 项目时运行 Gulp

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

当我打开此网站的本地项目时,我 100% 需要在任何其他操作之前运行此命令:gulp。我设置了它不到一年前,因此我使用了最新最好的东西,并且我的工作流程正合我意。几个月后,我进行了一些额外的调整,使事情变得更加完美(甚至添加了一个漂亮的有趣的码头图标!)。

那时我了解了VS Code 任务。一般来说,它们可以运行您配置的命令行任务,您可以随时通过名称选择运行它们。但我特别喜欢它们可以在您打开项目时运行的想法。

运行 Gulp 非常简单

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Gulp",
      "command": "gulp",
      "type": "shell",
      "runOptions": {
        "runOn": "folderOpen"
      }
    }
  ]
}

除了……这在我的机器上开始失败了。我使用 nvm 来管理 Node 版本,尽管我尽力将 nvm alias default 设置为与 Gulp 配合良好的正确 Node 版本,但 Node 版本始终错误,因此运行 gulp 会失败。诀窍是首先运行 nvm use(它从我的 .nvmrc 文件中设置正确的版本),然后 gulp 运行良好。

这在新的终端窗口中运行良好,但由于某种原因,即使使命令运行两个这样的任务(用分号将它们链接起来)

"command": "nvm use; gulp",

……它仍然会失败。它不知道 nvm 的含义。我不知道问题的核心到底是什么(为什么一个终端不知道另一个终端知道的东西),但我确实设法弄清楚全局 nvm 有一个 shell 脚本,它只有一个任务:定义 nvm 命令。因此,正如他们所说,您“source”它,然后 nvm 命令就可以工作了。

所以我的最终设置是

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Run Gulp",
      "command": ". ~/.nvm/nvm.sh; nvm use; gulp",
      "type": "shell",
      "runOptions": {
        "runOn": "folderOpen"
      }
    }
  ]
}

亲爱的读者们,这正是我想要的,它在打开我的 CSS-Tricks 项目时完美地运行了 Gulp。

向 Jen Luker 致敬,她和我一起踏上了这段旅程,并帮助我完成了它。🤚