Я добавил Gulp. js v4
к зависимостям проекта и запустил yarn install --no-bin-links
для локальной установки.
$ yarn install --no-bin-links
yarn install v1.17.3
[1/4] Resolving packages...
[2/4] Fetching packages...
info fsevents@1.2.12: The platform "linux" is incompatible with this module.
info "fsevents@1.2.12" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
[4/4] Building fresh packages...
success Saved lockfile.
Done in 32.48s.
(я использую параметр --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'"
.)
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"
},
...
}
yarn.lock
также относится к правильной версии:
...
gulp@^4.0.2:
version "4.0.2"
...
gulp-cli@>=2.2.0, gulp-cli@^2.2.0:
version "2.2.0"
...
А также yarn list
обеспечивает ожидаемый вывод:
$ yarn list | grep "gulp"
├─ gulp-autoprefixer@7.0.1
├─ gulp-cli@2.2.0
│ ├─ gulplog@^1.0.0
├─ gulp-filter@6.0.0
├─ gulp-less@4.0.1
├─ gulp-plumber@1.2.1
├─ gulp-rename@2.0.0
├─ gulp-watch@5.0.1
├─ gulp@4.0.2
│ ├─ gulp-cli@^2.2.0
├─ gulplog@1.0.0
Но когда я сейчас выполняю gulp
, используются старые версии (Gulp 3.9.1
и Gulp CLI 1.2.1
:
$ ./public/components/gulp/bin/gulp.js -v
[15:42:30] CLI version 1.2.1
[15:42:30] Local version 3.9.1
Что здесь не так и как правильно установить требуемую версию Gulp с помощью Yarn и , чтобы эта версия использовалась?