Як я можу отримати npm запуск в іншому каталозі?


292

Я зазвичай cdпотрапляю в каталог додатків, а потім запускаю npm start.

Я вважаю, що повинен бути якийсь спосіб запустити npm startпараметр шляху. Але, документація запуску npm не містить такої функції.

Я намагався себе лише знайти, npm start ./myappчи не виходить. Чи є спосіб це зробити?

Відповіді:


473

Цей однолінійний лайнер повинен працювати:

npm start --prefix path/to/your/app

Відповідний док


18
Не працює. Спроба знайти package.json у поточному каталозі.
— Шашват Кумар

@ShashwatKumar Ви коли-небудь знаходили робочий спосіб зробити це?
— Соковитий

3
Я щойно перевірив запуск цієї команди в папці, яка має package.jsonа, і npm правильно слідкував за тим, path/to/your/appщоб знайти потрібну package.json. Яку версію npm ви використовуєте?
— Amaury Liet

3
Працюючи на macOS10.14.x з вузлом 10.x та npm 6.9.0, однолінійний апарат працював бездоганно. Дякую.
— Тод

3
Документи --prefixтут: docs.npmjs.com/misc/config#prefix
— lealceldeiro

88

Нижче команди, де projectпапка, яка містить package.jsonфайл

npm run --prefix project ${COMMAND}

працює також. Корисно в додатках на основі Docker.


21

npm start --prefix path/to/your/app

& всередині package.json додайте наступний сценарій

"scripts": {
   "preinstall":"cd $(pwd)"
}

6
Чи можете ви пояснити, що робить сценарій перед встановлення?
— юнвар

Це не крос-платформа. Він працює лише в Unix, а не на непарних кульках, як Windows.
— Джек Гіффін

18

Я прийшов сюди з google, щоб це могло бути актуальним для інших: yarnви можете використовувати:

yarn --cwd /path/to/your/app run start 

6

Цей однолінійний також повинен працювати:

(cd /path/to/your/app && npm start)

Зауважте, що після виконання цієї команди поточний каталог буде змінено на / path / to / your / app. Щоб зберегти робочий каталог:

(cd /path/to/your/app && npm start && cd -)

Я використовував це рішення, оскільки файл конфігурації програми, який я редагував тоді, не підтримував вказівки аргументів командного рядка.


2
Будь ласка, використовуючи кнопку "-1", додайте коментар, щоб відвідувачі мали поняття "чому це не нормально" ...
— Кирило ЧАПОН

6
Я не став голосом. Але я вважаю, що це знижено через побічні ефекти. Рішення не є чистим, воно змінює поточний каталог.
— Володимир Серіх

Це насправді дуже поширене рішення, єдине поліпшення, яке було б зроблено, - це додавання дужок, щоб уникнути згаданих побічних ефектів. Однак рішення вище, на мій погляд, краще, оскільки вони суто покладаються на NPM.
— Rafał Wrzeszcz

Ви можете додати cd -в кінці, щоб зняти побічний ефект.
— babca

@babca, якщо npm startне вдасться ... вам потрібно розбити це на кілька заяв
— Андреас

2

У цьому списку випусків npm одна обробка може бути виконана через npm config

name: 'foo'
config: { path: "baz" },
scripts: { start: "node ./$npm_package_config_path" }

Під вікнами scriptsмогло бути{ start: "node ./%npm_package_config_path%" }

Потім запустіть командний рядок, як показано нижче

npm start --foo:path=myapp

що сценарій може зробити для завантажених пакетів? Припустимо, я хочу отримати доступ до js-файлу із завантаженого пакету npm
— Hardik Rana
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.