Скажите npm, чтобы искать package.json в определенной папке - PullRequest
0 голосов
/ 14 февраля 2019

Давайте для простоты скажем, что у меня есть структура папок, например, так:

root
|-build
  |-package.json
|-src
  |-foo
    |-foo.csproj
    |-foo.cs
    |-bar.cs
    |-bin
      |-...
  |-foo.sln

Давайте теперь скажем, что я изменяю текущий каталог на root\src\foo\bin и выполняю любую команду npmНапример, команда npm install выглядит следующим образом:

C:\root\src\foo\bin> npm install

Мы заметим, что npm начнет искать файл package.json в текущем каталоге и, поскольку он не найдет его, сообщит об ошибке примерно так:

npm ERR! path C:\root\src\foo\bin\package.json
npm ERR! code ENOENT
1>  npm ERR! errno -4058
1>  npm ERR! syscall open
1>  npm ERR! enoent ENOENT: no such file or directory, open 'C:\root\src\foo\bin\package.json'
1>  npm ERR! enoent This is related to npm not being able to find a file.
1>  npm ERR! enoent 

В этом случае предположим, что у меня было ограничение, что у меня было для выполнения всех команд изв папке root\src\foo\bin\ как мне сказать npm искать файл package.json, который находится в папке root\build\?

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Хотя HelpingHand в разделе комментариев к вопросу, а pavan skipo в ответах дали правильные ответы, я пишу этот ответ, чтобы закрепить полученные знания оРешив эту проблему, я получил ответ на этот вопрос путем поиска еще вскоре после публикации этого вопроса.

Чтобы запустить команду установки npm и указать путь к пакетуФайл .json:

$ npm install <folder_path>

$ npm install "..\..\..\build\"

Чтобы выполнить любую другую команду npm, например скрипт npm, и указать путь к файлу package.json:

$ npm --prefix <folder_path> run <script_name>

Например, если package.json имеет скрипт с именем build, команда будет иметь следующий вид:

$ npm --prefix "..\..\..\build" run build

Обратите внимание:

  1. Трейлингкосая черта \ (или \) после имени папки является необязательной.Таким образом, ..\..\..\build\ совпадает с ../../../build/, что совпадает с ..\..\..\build.

  2. <folder_path> - это путь к папке, содержащей package.json, который выхочу npm искать.

0 голосов
/ 14 февраля 2019

Просто чтобы убедиться, что я правильно понял ваш вопрос, вы находитесь в корневом каталоге, а package.json в подкаталоге сборки и хотите установить пакеты из корневого каталога, верно?если это так

Вы можете дать npm install <folder_path>, так что в вашем случае от root вы можете дать npm install build/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...