Невозможно использовать сжатый архив в разрешении пряжи
Для проекта надписи 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)
Существует ли особый процесс использования сжатых архивов для разрешения пряжи?
РЕДАКТИРОВАТЬ
вот как выглядит мой 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 ответ
Так что я смог решить эту проблему, хотя я не очень понимаю, почему это сработало как 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
и это давало мне те же ошибки, что и раньше.