4

这也是目前使用 gulp-sass 的项目。gulp-sass 依赖于 node-sass#^3.4.1,它刚刚自动更新到 3.5.3,这是一个破坏性版本。

我通过更新 package.json 文件将我的 gulp sass 版本降级为旧版本(2.1.0),但它仍然中断。

如何回到节点 sass 3.4.2?

错误信息

错误:您不能从@media 中@extend 外部选择器。您只能在同一指令中 @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"
  }
}
4

1 回答 1

6

看起来新版本刚刚发布,它允许 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"
        }
      }
    }
  }
}

确保在再次运行之前删除您的node_modules npm cache clean以清除本地缓存的包npm install

于 2016-04-23T04:46:25.120 回答