切换至Gulp后,如何将SUSY从3.x降级到2.x兼容旧项目?
如何在Gulp工作流中降级SUSY到2.x并维护多版本项目
嘿,刚切换到Gulp还在摸门道对吧?别担心,我帮你搞定SUSY版本的问题——既要用3.x做新项目,又要维护2.x的老项目,关键是每个项目单独管理依赖版本,这样就不会互相冲突啦。下面是具体步骤,针对你的Mac环境(已经装了Node.js的话直接跟着来就行):
最佳方案:为单个历史项目安装2.x版本(推荐)
全局安装同一版本会导致所有项目都用这个版本,很容易搞混,所以最好给每个老项目单独装2.x的SUSY:
- 打开终端,用
cd命令进入你的历史项目根目录(比如cd ~/Projects/old-susy-project) - 先卸载项目里当前的SUSY(如果之前装过3.x的话):
npm uninstall susy - 安装SUSY 2.x分支的最新稳定版,直接用
@2指定版本范围:
如果你需要某个特定的小版本(比如2.2.12,这是2.x的最后一个稳定版),可以写具体版本号:npm install susy@2 --save-devnpm install susy@2.2.12 --save-dev - 最后检查你的Gulp配置文件(
gulpfile.js),确保引用的是项目本地的SUSY。比如用gulp-sass编译的话,要把SUSY的路径加入includePaths:
这样配置后,这个老项目就会用本地安装的2.x版本SUSY,完全不会影响你新项目里的3.x版本。const gulp = require('gulp'); // 注意:现在推荐用dart-sass,若你用node-sass写法会略有不同 const sass = require('gulp-sass')(require('sass')); const susy = require('susy'); function compileSass() { return gulp.src('src/scss/**/*.scss') .pipe(sass({ includePaths: [susy.includePath] }).on('error', sass.logError)) .pipe(gulp.dest('dist/css')); } // 注册任务,方便终端运行 exports.sass = compileSass;
可选:全局降级SUSY(不推荐)
如果你确实需要全局环境用2.x版本(但真心不建议,会干扰新项目),可以执行:
npm uninstall -g susy npm install -g susy@2
但记住,之后新建项目时,一定要在项目本地安装3.x版本,避免全局版本覆盖。
小提示
每个项目的package.json文件里会自动记录你安装的SUSY版本,以后不管是重新拉取项目还是换电脑,只要在项目根目录运行npm install,就会自动安装对应版本的依赖,不用再手动指定啦。
内容的提问来源于stack exchange,提问作者John Fieldsend
相关产品推荐
相关产品推荐

