首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用gulp编译bootstrap-sass?

如何用gulp编译bootstrap-sass?
EN

Stack Overflow用户
提问于 2014-11-08 16:02:31
回答 1查看 2K关注 0票数 3

在将bootstrap添加到我的节点项目时,我遇到了一些问题。我通过bower安装了bootstrap-sass-official,然后添加了用于编译bootstrap的gulp任务。

我运行了一个直接从控制台编译引导程序的任务,它成功地完成了。我的gulpfile.coffee

代码语言:javascript
复制
gulp = require 'gulp'
$ = (require 'gulp-load-plugins')()
livereload = require 'gulp-livereload'
nodemon = require 'gulp-nodemon'
concat = require 'gulp-concat'
express = require 'express'
path = require 'path'
sass = require 'gulp-ruby-sass'
app = express()

gulp.task 'bootstrap-sass', =>
  gulp.src './bower_components/bootstrap-sass-official/assets/stylesheets/**/*.scss'
  .pipe $.plumber()
  .pipe $.sass({
    outputStyle: 'compressed'
    sourceComments: 'map'
    includePaths : ['./bower_components/bootstrap-sass-official/assets/stylesheets']
  })
  .on 'error', (err) =>
    console.log err
  .pipe gulp.dest 'dist/stylesheets/bootstrap'


gulp.task 'compass', =>
  gulp.src './src/stylesheets/*.sass'
  .pipe $.plumber()
  .pipe $.compass {
    css: 'dist/stylesheets'
    sass: 'src/stylesheets'
  }
  .pipe gulp.dest 'dist/stylesheets'
#  .pipe livereload()


gulp.task 'coffee', =>
  gulp.src 'src/scripts/main.coffee', {read: false}
  .pipe $.plumber()
  .pipe $.browserify {
    debug: true
    insertGlobals: false
    transform: ['coffeeify']
    extensions: ['.coffee']
  }
  .pipe $.rename 'app.js'
  .pipe gulp.dest 'dist/scripts'
  .pipe livereload()


gulp.task 'images', =>
  gulp.src './src/images/**/*'
  .pipe gulp.dest './dist/images/'
  .pipe livereload()

gulp.task 'templates', =>
  gulp.src 'src/*.jade'
  .pipe $.plumber()
  .pipe $.jade {
    pretty: true
  }
  .pipe gulp.dest 'dist/'
  .pipe livereload()

gulp.task 'express', =>
  app.use express.static(path.resolve './dist')
  app.listen 1337
  $.util.log 'Listening on port: 1337'

gulp.task 'watch', =>
  livereload.listen()
  gulp.watch 'src/stylesheets/*.sass', ['compass']
  gulp.watch 'src/scripts/*.coffee', ['coffee']
  gulp.watch 'src/*.jade', ['templates']
  gulp.watch './src/images/**/*', ['images']
  $.notify {message: "Reload"}


gulp.task 'default', ['images', 'watch', 'express', 'demon']
gulp.task 'demon', =>
  nodemon {
    script: 'dist/scripts/app.js'
    env: {'NODE_ENV': 'development'}
    nodeArgs: ['--debug=9999']
  }

你知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2015-05-15 01:38:30

不使用gulp来包含来自bootstrap-sass**/*.scss,而是创建一个SCSS文件,它通过@import语句“导入”bootstrap-sass文件。

这样做很重要,因为实际上需要包含bootstrap-sass文件的顺序是有的,您可以通过使用@import语句来控制该顺序。

例如,here's是一个如何做到这一点的例子。请注意,app.scss是唯一一个包含其他所有内容的文件;app.scss成为Gulp惟一需要处理的内容。

然后你的吞咽命令会这样做:

代码语言:javascript
复制
gulp.src './app.scss'
  .pipe blah blah sass stuff
  .pipe gulp.dest 'dist/stylesheets/'

我用来处理SCSS的Gulp任务是styles:scss任务here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26815089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档