Как я могу получить полный список зависимостей javascript для jupyterlab - PullRequest
1 голос
/ 25 сентября 2019

Я пытаюсь получить список всех зависимостей, которые упакованы с jupyterlab v1.1.4.Я думаю, что я могу получить зависимости Python по

python3 -m venv .env
pip install jupyterlab==1.1.4
pip freeze

Но я не знаю, как это сделать для зависимостей javascript.Я не знаю много о js.

Кажется, эта информация может быть в одном из файлов yarn.lock.Но я не уверен, что мне нужен файл yarn.lock в домашнем каталоге или в / jupyterlab / staging /.Причина, по которой я думал, что это может быть промежуточная стадия, которая намного короче, заключается в том, что CONTRIBUTING.md говорит:

По умолчанию приложение будет загружаться из промежуточной стадии JupyterLab.каталог (по умолчанию <sys-prefix>/share/jupyter/lab/build. Если вы хотите запустить основное приложение в <git root>/jupyterlab/build, запустите jupyter lab --core-mode. Это основное приложение, которое будет поставлено.

Но тогда проблема в том,Как только я определил правильный файл yarn.lock, как мне удалить зависимости dev? Я вижу, что внутри / jupyterlab / staging / package.json есть раздел для зависимостей dev, и они кажутсябыть включенным в файл yarn.lock. Все в разделе зависимостей файла package.json имеет префикс @jupyterlab. Означает ли это, что я могу отфильтровать файл yarn.lock, чтобы сохранить только те блоки, которые находятся в этом разделе?сохранит все эти зависимости

"@jupyterlab/coreutils@^3.1.0", "@jupyterlab/coreutils@~3.1.0":
  version "3.1.0"
  resolved "https://registry.yarnpkg.com/@jupyterlab/coreutils/-/coreutils-3.1.0.tgz#b307569462c468d6a09dfa06f32fed03e55dd811"
  integrity sha512-ZqgzDUyanyvc86gtCrIbc1M6iniKHYmWNWHvWOcnq3KIP3wk3grchsTYPTfQDxcUS6F04baPGp/KohEU2ml40Q==
  dependencies:
    "@phosphor/commands" "^1.6.3"
    "@phosphor/coreutils" "^1.3.1"
    "@phosphor/disposable" "^1.2.0"
    "@phosphor/properties" "^1.1.3"
    "@phosphor/signaling" "^1.2.3"
    ajv "^6.5.5"
    json5 "^2.1.0"
    minimist "~1.2.0"
    moment "^2.24.0"
    path-posix "~1.0.0"
    url-parse "~1.4.3"

, потому что (@ jupyterlab / coreutils) [https://github.com/jupyterlab/jupyterlab/blob/v1.1.4/jupyterlab/staging/package.json#L24] находится в разделе зависимостей, но я могу исключить

glob@^7.1.3, glob@^7.1.4, glob@~7.1.2:
  version "7.1.4"
  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
  integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
  dependencies:
    fs.realpath "^1.0.0"
    inflight "^1.0.4"
    inherits "2"
    minimatch "^3.0.4"
    once "^1.3.0"
    path-is-absolute "^1.0.0"

, потому чтоГлобус есть только в зависимостях dev?Но что произойдет, если glob является зависимостью одной из зависимостей не-dev?В этом случае я все еще хотел бы сохранить glob и все зависимости iot.

Наконец, подразумевает ли раздел resolution , что мне может потребоваться рассмотреть более одной версии одной библиотеки какпоследняя зависимость, которая будет упакована?

Является ли их какой-то фильтр для yarn list, который, возможно, даст мне список, за которым я ищу?

1 Ответ

1 голос
/ 25 сентября 2019

yarn list --prod даст вам только производственные зависимости, с которыми поставляется JupyterLab.Раздел resolutions фактически переопределяет версии пакета - он используется для обеспечения установки только одной версии данного пакета.Утилиты Yarn для перечисления зависимостей поймут это, поэтому, пока вы проходите через Yarn, вам не нужно об этом беспокоиться.

Обратите внимание, что JupyterLab поставляется с множеством зависимостей, которые обычно могут считаться зависимостями dev.- это связано с тем, что для поддержки расширений необходимо включить Webpack и соответствующие инструменты на компьютерах конечных пользователей.

...