Подтвердить что ты не робот

Попытка запустить задачу gulp с VSCode, которая не находится в корневой папке

Это моя задача .json

// A task runner configuration for gulp. Gulp provides a less task
// which compiles less to css. 
{
    "version": "0.1.0",
    "command": "gulp",
    "isShellCommand": true,
    "tasks": [
        {
            "taskName": "sfdcBuild",
            // Make this the default build command.
            "isBuildCommand": true,
            // Show the output window only if unrecognized errors occur.
            "showOutput": "always",
            // Use the standard less compilation problem matcher.
            "problemMatcher": "$lessCompile"
        }
    ]
}

К сожалению, моя установка gulp (локальная) не находится под корнем, а внутри другой папки:

root/js/

так как я могу определить, что я хотел бы запустить эту команду gulp из другой папки?

PS: перемещение task.json во вложенную папку не выполнялось.

4b9b3361

Ответ 1

Частично поддерживается другой рабочий каталог. Он не работает для автоматического обнаружения задач gulp, но он должен работать для запуска gulp. Вы можете добавить что-то вроде этого в tasks.json в области верхнего уровня.

"options": {
    "cwd": "${workspaceRoot}/mySubDir"
},

Однако это по-прежнему предполагает, что gulp и все node модули guld требуют доступа из этого каталога.

Ответ 2

tasks.json не поддерживает в это время запуск задачи с другим cwd. Одним из способов решения проблемы было бы создать файл gulp.cmd или gulp.sh в корневой папке рабочего пространства, который вызывает правильный gulp. Например. gulp.cmd:

@SETLOCAL
@SET PATHEXT=%PATHEXT:;.JS;=;%
node  "%~dp0\node_modules\gulp\bin\gulp.js" %*

Чтобы избежать этого в вашем репозитории git, вы можете игнорировать его в .git/info/exclude

Ответ 3

вы можете передать путь от gulpfile.js до gulp в args

"version": "0.1.0",
"command": "gulp",
"isShellCommand": true,
"args": [
    "--gulpfile",
    "./js/gulpfile.js"
]