Поскольку у меня возникли очень странные проблемы с версией 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
).