Как сделать Gulp. js пригодным для использования, когда он установлен Yarn? - PullRequest
0 голосов
/ 18 апреля 2020

Поскольку у меня возникли очень странные проблемы с версией Gulp, возможно вызванные своего рода кешем (возможно, кешем Yarn), я полностью удалил Gulp. js, Yarn и Node.js

$ yarn global remove gulp && yarn global remove gulp-cli
$ npm remove -g gulp && npm remove -g gulp-cli
$ apt-get remove yarn && apt-get purge yarn
$ apt-get --purge remove nodejs node npm
$ find / -name "gulp"
$ rm -fr /usr/bin/gulp /usr/lib/node_modules /usr/local/share/.cache/yarn

и снова установил их:

$ curl -sL https://deb.nodesource.com/setup_13.x | -E bash - && apt-get update
$ apt-get install -y nodejs
$ curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ apt-get update && sudo apt-get install yarn
$ yarn global add gulp
$ yarn global add gulp-cli

Текущее состояние:

$ yarn global list
yarn global v1.22.4
info "gulp@4.0.2" has binaries:
   - gulp
info "gulp-cli@2.2.0" has binaries:
   - gulp
Done in 0.55s.
$ cd ~
$ gulp -v
CLI version: 2.2.0
Local version: Unknown
$ cd /path/to/my/project
$ rm yarn.lock
$ rm -fr ./public/components/
$ yarn install
$ gulp -v
CLI version: 2.2.0
Local version: Unknown
$ yarn add gulp --no-bin-links
$ yarn add gulp-cli --no-bin-links
$ gulp -v
CLI version: 2.2.0
Local version: Unknown

Таким образом, как показано выше, независимо от текущей папки Local version всегда "Неизвестно" .

Чем может быть вызвана эта проблема и как работает Gulp. js (установлен Yarn)?


Дополнительная информация :

Если я устанавливаю Gulp локально с npm, он работает:

$ cd /path/to/my/project
$ npm install gulp --no-bin-links
$ gulp -v
CLI version: 2.2.0
Local version: 4.0.2

My package.json

{
  ...
  "dependencies": {
    "bootstrap": "^3.3.6",
    "gulp": "^4.0.2",
    "gulp-autoprefixer": "*",
    "gulp-cli": "^2.2.0",
    "gulp-filter": ">=6.0.0",
    "gulp-less": "*",
    "gulp-plumber": "*",
    "gulp-rename": "*",
    "gulp-watch": "*",
    "html5shiv": ">=3.7.3",
    "jquery": "^3.4.0",
    "jquery-ui": "^1.12.1",
    "jquery-ui-dist": "^1.12.1",
    "path": "*",
    "respond": ">=0.9.0"
  },
  ...
}

Контекст

Virtualbox VM, хост-система: Windows 7, гостевая система: Ubuntu Server 19.04.

--no-bin-links параметр

Я использую параметр --no-bin-links, чтобы избежать этой ошибки: error An unexpected error occurred: "EPROTO: protocol error, symlink '../../../semver/bin/semver' -> '/path/to/project/public/components/accord/node_modules/.bin/semver'" (возможно, вызвано хост-системой Windows, которая не допускает символические ссылки в общих папках ).

./public/components/ папка

Каталог ./public/components/ - это моя пользовательская папка для модулей пряжи, определенная в .yarnrc (--modules-folder ./public/components).

...