Npm run <cmd> работает медленно

Вопрос:Я использовал для запуска различных команд через Makefile, но для nodejs-проектов package.json - более подходящее место для этого материала. Запуск команд через npm работает отлично, но очень медленно по сравнению с выполнением команды. $ time ./node_modules/.bin/jshint . && ./node_modules/.bin/jscs . real 0m0.759s user 0m0.524s sys 0m0.085s No code style errors found. $ time npm run

Вопрос:

Я использовал для запуска различных команд через Makefile, но для nodejs-проектов package.json – более подходящее место для этого материала.

Запуск команд через npm работает отлично, но очень медленно по сравнению с выполнением команды.

$ time ./node_modules/.bin/jshint . && ./node_modules/.bin/jscs . real 0m0.759s user 0m0.524s sys 0m0.085s No code style errors found. $ time npm run lint > @ lint /path/to/project > jshint . && jscs . No code style errors found. real 0m2.246s user 0m1.637s sys 0m0.277s

Можно ли ускорить его?

обновление. My package.json:

{ «devDependencies»: { «jscs»: «^1.12.0», «jshint»: «^2.6.3» }, «scripts»: { «lint»: «jshint . && jscs .» } }

upd2. Я измерил время не так. Гант указал на это в своем комментарии. Теперь оба раза выглядят одинаково (разница в 100 мс).

$ time sh -c ‘./node_modules/.bin/jshint . && ./node_modules/.bin/jscs .’ No code style errors found. real 0m1.704s user 0m1.245s sys 0m0.177s $ time npm run lint > @ lint /path/to/project > jshint . && jscs . No code style errors found. real 0m1.822s user 0m1.621s sys 0m0.198s Лучший ответ:

Это не ошибка npm, на самом деле она даже более точно определяет время.

Посмотрите, что вы сделали.

time npm run lint будет вызывать время, которое затем будет приводить ваши задачи в порядок. time перестанет принимать время, необходимое для завершения работы npm, которое будет выполняться при выполнении ваших задач. Здесь есть только небольшие накладные расходы, а script работает по назначению.

time ./node_modules/.bin/jshint . && ./node_modules/.bin/jscs . однако вызовет time, который будет вызывать jshint. Как только jshint завершает работу, время тоже прекратится, а jscs будет работать без. Вот почему в ваших примерах порядок выходов смешивается.

Чтобы получить точные измерения времени без npm, попробуйте time sh -c ‘./node_modules/.bin/jshint . && ./node_modules/.bin/jscs .’

Оцените статью
Добавить комментарий