Невозможно использовать сжатый архив в разрешении пряжи - PullRequest
0 голосов
/ 09 января 2019

Для проекта надписью stenciljs, над которым я работаю, у меня возникли проблемы с взаимодействиями между rollup-plugin-node-builtins и node-gyp-build, которые использовались в зависимости. Чтобы решить эту проблему, я смог внести некоторые изменения в плагин накопления и установить его в качестве пользовательского разрешения пряжи в шаблоне

"resolutions": {
    "@stencil/core/**/rollup-plugin-node-builtins": "https://github.com/Matthew-Smith/rollup-plugin-node-builtins.git"
}

Это прекрасно работает, когда я запускаю его локально, но у нашего процесса сборки не было git, доступного, когда мы выполняем yarn install Поэтому мы попытались установить разрешение для .tar.gz выпуска плагина:

"resolutions": {
  "@stencil/core/**/rollup-plugin-node-builtins": "https://github.com/Matthew-Smith/rollup-plugin-node-builtins/archive/v2.1.3.tar.gz"
}

Это, похоже, правильно клонировало код в node_modules:

> l node_modules | grep rollup
drwxr-xr-x    8 matthewsmith  staff   256B Jan  9 11:26 rollup
drwxr-xr-x    9 matthewsmith  staff   288B Jan  9 11:26 rollup-plugin-commonjs
drwxr-xr-x   13 matthewsmith  staff   416B Jan  9 11:26 rollup-plugin-node-builtins
drwxr-xr-x    8 matthewsmith  staff   256B Jan  9 11:26 rollup-plugin-node-resolve
drwxr-xr-x    7 matthewsmith  staff   224B Jan  9 11:26 rollup-pluginutils

> l node_modules/rollup-plugin-node-builtins
total 64
drwxr-xr-x   13 matthewsmith  staff   416B Jan  9 11:26 .
drwxr-xr-x  670 matthewsmith  staff    21K Jan  9 11:26 ..
-rw-r--r--    1 matthewsmith  staff    36B Jan  9 11:13 .babelrc
-rw-r--r--    1 matthewsmith  staff   650B Jan  9 11:13 .eslintrc
-rw-r--r--    1 matthewsmith  staff     5B Jan  9 11:13 .gitignore
-rw-r--r--    1 matthewsmith  staff    14B Jan  9 11:13 .npmignore
drwxr-xr-x    5 matthewsmith  staff   160B Jan  9 11:26 browser-test
-rw-r--r--    1 matthewsmith  staff   500B Jan  9 11:13 build-constants.js
-rw-r--r--    1 matthewsmith  staff   1.3K Jan  9 11:13 package.json
-rw-r--r--    1 matthewsmith  staff   2.5K Jan  9 11:13 readme.md
-rw-r--r--    1 matthewsmith  staff   216B Jan  9 11:13 rollup.config.js
drwxr-xr-x    4 matthewsmith  staff   128B Jan  9 11:26 src
drwxr-xr-x    4 matthewsmith  staff   128B Jan  9 11:26 test

но когда я пытаюсь построить код, я получаю такой вывод:

$ sd concurrent "stencil build --dev --watch" "stencil-dev-server"
[26:41.1]  @stencil/core v0.12.4 ?
[26:41.2]  build, app, dev mode, started ...
[26:41.7]  transpile started ...
[26:43.8]  transpile finished in 2.07 s
[26:43.8]  module map started ...
[26:43.8]  generate styles started ...
[26:43.8]  module map finished in 12 ms
[26:43.9]  generate styles finished in 76 ms

[ ERROR ]  Cannot find module 'rollup-plugin-node-builtins' at Function.Module._resolveFilename
           (internal/modules/cjs/loader.js:580:15) at Function.Module._load
           (internal/modules/cjs/loader.js:506:25) at Module.require (internal/modules/cjs/loader.js:636:17) at
           require (internal/modules/cjs/helpers.js:20:18) at
           /Users/matthewsmith/penfield/node_modules/@stencil/core/dist/compiler/index.js:18322:26
           at Generator.next (<anonymous>) at
           /Users/matthewsmith/penfield/node_modules/@stencil/core/dist/compiler/index.js:18306:71
           at new Promise (<anonymous>) at __awaiter$13
           (/Users/matthewsmith/penfield/node_modules/@stencil/core/dist/compiler/index.js:18302:12)
           at createBundle
           (/Users/matthewsmith/penfield/node_modules/@stencil/core/dist/compiler/index.js:18310:12)

Существует ли особый процесс использования сжатых архивов для разрешения пряжи?

EDIT

вот как выглядит мой yarn.lock для этой зависимости:

rollup-plugin-node-builtins@2.1.2, "rollup-plugin-node-builtins@https://github.com/Matthew-Smith/rollup-plugin-node-builtins/archive/v2.1.3.tar.gz":
  version "2.1.3"
  resolved "https://github.com/Matthew-Smith/rollup-plugin-node-builtins/archive/v2.1.3.tar.gz#af40f65e716e2c62e698cbea169127f9c1717e7d"
  dependencies:
    browserify-fs "^1.0.0"
    buffer-es6 "^4.9.2"
    crypto-browserify "^3.11.0"
    process-es6 "^0.11.2"

Версия пряжи:

1.12.3
Версия узла:
10.12.0
Версия трафарета:
0.12.4

1 Ответ

0 голосов
/ 10 января 2019

Так что я смог решить эту проблему, хотя я не очень понимаю, почему это сработало как git-зависимость.

Глядя глубже, я заметил, что package.json перечисляет основные как:

"main": "dist/rollup-plugin-node-builtins.cjs.js",

и есть скрипт для сборки пакета:

"build": "rollup -c -f cjs -o dist/rollup-plugin-node-builtins.cjs.js && rollup -c -f es -o dist/rollup-plugin-node-builtins.es6.js && node build-constants.js",

Итак, я выполнил сборку, упаковал ее через npm pack . и затем использовал этот сжатый файл в моих разрешениях зависимостей!

ПРИМЕЧАНИЕ: перед тем, как узнать о npm pack . Я попытался использовать tar -czvf, и это выдало мне те же ошибки, что и раньше.

...