Следующая задача gulp не работает над окнами, но работает на ubuntu
Задача gulp
/* Run the npm script npm run buildLsdk using gulp */
gulp.task('sdk', function() {
if (process.cwd() != basePath) {
process.chdir('..');
// console.log(process.cwd());
}
spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q'], {stdio: 'inherit'});
});
Я получаю следующую трассировку стека, но я не могу отлаживать
Error: spawn ./node_modules/.bin/lb-sdk ENOENT
at exports._errnoException (util.js:1022:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:359:16)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickCallback (internal/process/next_tick.js:98:9)
at Module.runMain (module.js:607:11)
at run (bootstrap_node.js:420:7)
at startup (bootstrap_node.js:139:9)
at bootstrap_node.js:535:3
У меня есть все необходимые файлы в модулях node, поэтому любая помощь действительно ценится.
Больше ссылок на использование файла выше - https://github.com/rahulrsingh09/loopback-Angular-Starter/blob/master/gulpfile.js
Ответы
Ответ 1
Я думаю, это потому, что lb-sdk.cmd - это файл, который вы должны запускать в окнах. когда я изменил команду на ниже, ошибка исчезнет. Обратите внимание, что косые черты в стиле окна отличаются от Linux.
gulp.task('sdk', function() {
spawn(
'.\\node_modules\\.bin\\lb-sdk.cmd',
[
'.\\server\\server.js',
'.\\client\\src\\app\\shared\\sdk',
'-q'
], {stdio: 'inherit'}
);
});
Я нашел дополнительную информацию, и я отправлю второй ответ, который я нашел (выше того, который был принят).
Если вы хотите избежать изменения каталогов в windows/linux, вы можете использовать cross-spawn: https://www.npmjs.com/package/cross-spawn
win-spawn (из диалогового окна чата) больше не поддерживается за репозиторий github. Если вы заинтересованы в его использовании, внесите следующие изменения:
Ответ 2
Пожалуйста, обратитесь к этому аналогичному ответу, это решит вашу проблему:
Преобразуйте следующую задачу npm script в gulp
Как автоматизировать сборку из следующей конфигурации с помощью gulp
И вы можете проверить документацию lb-sdk
, введя ./node_modules/.bin/lb-sdk
в свой терминал.
Ответ 3
Можете ли вы попробовать использовать basePath
при передаче server/server.js
и ./client/src/app/shared/sdk
. Как например:
spawn(
'./node_modules/.bin/lb-sdk',
[
basePath + '/server/server.js',
basePath + '/client/src/app/shared/sdk',
'-q'
], {stdio: 'inherit'}
);