【问题标题】:Ionic create new sass file离子创建新的sass文件
【发布时间】:2015-01-16 10:21:08
【问题描述】:

我正在为我的 html5 移动应用程序使用 Ionic 框架。

我知道我可以将自定义 sass 添加到 scss 文件夹下的 ionic.app.scss 文件中,并且 ionic serve 或 ionic build 会将我的 sass 编译为 css,但是如果我想在此处添加其他 sass 文件,例如 ionic。 home.scss 我如何让这些编译?是否需要修改 gulp 文件。

我基本上是在扩展默认的Ionic tabs app 应用程序。这是我想要的结构,基本上每个模板都有一个 sass 文件

+-- _gulpfile.js
+-- _scss
|   +-- ionic.app.scss
|   +-- tab-home.scss
|   +-- tab-projects.scss
|   +-- tab-services.scss
+-- _templates
|   +-- tab-home.html
|   +-- tab-projects.html
|   +-- tab-services.html
+-- index.html

这是 gulp 文件

var gulp = require('gulp');
var gutil = require('gulp-util');
var bower = require('bower');
var concat = require('gulp-concat');
var sass = require('gulp-sass');
var minifyCss = require('gulp-minify-css');
var rename = require('gulp-rename');
var sh = require('shelljs');

var paths = {
  sass: ['./scss/**/*.scss']
};

gulp.task('default', ['sass']);

gulp.task('sass', function(done) {
  gulp.src('./scss/ionic.app.scss')
    .pipe(sass())
    .pipe(gulp.dest('./www/css/'))
    .pipe(minifyCss({
      keepSpecialComments: 0
    }))
    .pipe(rename({ extname: '.min.css' }))
    .pipe(gulp.dest('./www/css/'))
    .on('end', done);
});

gulp.task('watch', function() {
  gulp.watch(paths.sass, ['sass']);
});

gulp.task('install', ['git-check'], function() {
  return bower.commands.install()
    .on('log', function(data) {
      gutil.log('bower', gutil.colors.cyan(data.id), data.message);
    });
});

gulp.task('git-check', function(done) {
  if (!sh.which('git')) {
    console.log(
      '  ' + gutil.colors.red('Git is not installed.'),
      '\n  Git, the version control system, is required to download Ionic.',
      '\n  Download git here:', gutil.colors.cyan('http://git-scm.com/downloads') + '.',
      '\n  Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.'
    );
    process.exit(1);
  }
  done();
});

【问题讨论】:

    标签: javascript html sass ionic-framework


    【解决方案1】:

    将 gulp 文件中 sass 或 scss 任务中的 gulp.src() 更改为 gulp.src("_scss/**/*.scss") 之类的东西,双 * 表示包含任何子目录。此外,如果您不想输出另一个 css 文件,则需要创建部分文件(只需在 sass 文件名的开头添加 _

    【讨论】:

    • 我试过 ("_scss/**/*.scss") 但没用,以前是 ('./scss/ionic.app.scss')
    • 把你的 gulp 文件或者只是你的 scss 任务发给我,我会试着修复它。您可能需要将 gulp.dest() 更改为类似“dist/css/”的内容
    • 我在上面的描述中添加了 gulp 文件,谢谢
    • gulp.src('./scss/**/*.scss')
    【解决方案2】:

    您可以只拥有一个ionic.app.scss,并在此文件中使用@import 对其进行扩展。

    @import "tab-home.scss", "tab-projects.scss", "tab-services.scss";
    

    【讨论】:

    • 只是为了我自己在一个新项目中的参考,我努力让 ionic.app.scss 编译为 ionic.app.css,运行 ionic setup sass 在 index.html 中正确设置它,这是针对该问题的link,即使我过去在 index.html 中手动更改链接没有任何问题
    • 我试过了,现在 gulp 没有看任何一个文件,我试图恢复它,但它仍然没有看,有什么想法吗?
    • 我有一个类似的问题 - 尽管这个解决方案会起作用 - 它实际上仍然没有回答关于如何修复 gulp 任务的问题。
    • 任务没坏,为什么要修复?
    猜你喜欢
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-16
    • 1970-01-01
    • 2016-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多