выпуск node sass 3.5.3 ломает сборку

Это также в настоящее время кусает мой проект, который использует gulp-sass. gulp-sass зависит от node-sass # ^ 3.4.1, который автоматически обновился до версии 3.5.3, которая является критическим выпуском.

Я снизил свою версию gulp sass до более старой (2.1.0), обновив файл package.json, но он все еще ломается.

как вернуться к узлу sass 3.4.2?

Сообщение об ошибке

Ошибка: нельзя @расширять внешний селектор из @media. Вы можете использовать только селекторы @extend в одной директиве.

{
  "version": "1.0.0",
  "name": "abcd",
  "devDependencies": {
     "bower": "^1.3.12",
    "express": "^4.12.3",
    "gulp": "^3.8.10",
    "gulp-autoprefixer": "^2.1.0",
    "gulp-bower": "^0.0.7",
    "gulp-concat": "^2.5.2",
    "gulp-install": "^0.4.0",
    "gulp-livereload": "^3.8.0",
    "gulp-minify-css": "^1.0.0",
    "gulp-plumber": "^1.0.0",
    "gulp-sass": "2.1.0",
    "gulp-sourcemaps": "^1.5.1",
    "gulp-uglify": "^1.1.0"
  },
  "dependencies": {
    "jquery": "1.11.1"
  }
}

person Sudipto Sarkar    schedule 23.04.2016    source источник
comment
Как это ломается? В чем ошибка?   -  person randominstanceOfLivingThing    schedule 23.04.2016
comment
Я обновил сообщение, что он не поддерживает @extend внутри медиа-запроса.   -  person Sudipto Sarkar    schedule 23.04.2016
comment
При чем здесь Gulp? Extend не должен работать внутри медиа-запросов.   -  person cimmanon    schedule 23.04.2016
comment
Это неправильное понятие корицы. Он работал со старой версией node sass. В обработчике ошибок node sass могут быть некоторые изменения, чтобы отобразить это сообщение.Если вы будете держать глаза открытыми, все разработчики, которые используют пакеты node, сталкиваются с этой проблемой в течение последних 3 дней, потому что было обновление версии node sass   -  person Sudipto Sarkar    schedule 24.04.2016


Ответы (1)


Похоже, что только что была выпущена новая версия, допускающая "глючную" версию node-sass, но вы можете всегда npm shrinkwrap конкретные подзависимости для конкретной версии, если вам нужно - при условии, что основной пакет совместим с этой зависимостью версия.

Это заблокирует версию node-sass в gulp-sass до 3.4.2:

{
  "name": "yourprojectname",
  "version": "1.0.0",
  "dependencies": {
    "gulp-sass": {
      "version": "2.3.1",
      "from": "gulp-sass@>=2.3.1 <3.0.0",
      "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-2.3.1.tgz",
      "dependencies": {
        "node-sass": {
          "version": "3.4.2"
        }
      }
    }
  }
}

Перед повторным запуском npm install убедитесь, что вы удалили свои node_modules npm cache clean, чтобы очистить локально кэшированные пакеты.

person steveax    schedule 23.04.2016
comment
steveax Я думаю, это сработает, но не могли бы вы помочь мне уместить эту зависимость в моем пакете json, о котором я упоминал выше - person Sudipto Sarkar; 23.04.2016
comment
@SudiptoSarkar, этот блок JSON выше не входит в ваш package.json, а в npm-shrinkwrap.json (на том же уровне, что и ваш package.json). - person steveax; 23.04.2016
comment
Спасибо Steveax, это сработало как шарм, и вы знаете, что это, независимо от того, что есть в моем кеше npm, мне даже не пришлось запускать очистку кеша npm !! - person Sudipto Sarkar; 24.04.2016
comment
Итак, я новичок в этом стеке, и я не могу заставить работать термоусадочную пленку, я выполнил установку npm для установки всех зависимостей, а затем npm install shrinkwrap, но когда я запускаю команду npm shrinkwrap, я получаю следующую ошибку: extraneous: shrinkwrap @ 0.4.0 C: \ dev \ xxxx \ node_modules \ shrinkwrap - person Joshy; 18.07.2016
comment
Это хороший способ, но я получаю сообщение об ошибке: Недопустимая зависимость: gulp-sass {версия: 2.3.1, от: gulp-sass @ ›= 2.3.1‹ 3.0.0, решено: registry.npmjs.org/gulp-sass/- /…;: {Node‌ -sass: {версия: 3‌ .4.2}}} - person Parhum; 24.09.2016