plugins: () => {
                  const plugins = [
                    postcssImport(),
                    postcssPresetEnv({
                      stage: 0
                    })
                  ]

                  if (argv.mode === 'production') {
                    plugins.push(cssnano());
                  }

                  return plugins;
                }
Пример #2
0
gulp.task('css', () => {
  const processors = [
    cssnext({ browsers: ['last 2 versions'] }),
    sorting({ 'sort-order': 'csscomb' }),
    cssnano({ autoprefixer: false }),
  ]
  return gulp
    .src('./src/styles/*.css')
    .pipe(sourcemaps.init())
    .pipe(postcss(processors))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('./docs'))
    .pipe(reload({ stream: true }))
})
Пример #3
0
gulp.task('createCSS', function() {
  return gulp.src(activatedAnimations)
    .pipe(concat(opts.concatName))
    .pipe(postcss([
      autoprefixer(opts.autoprefixer)
    ]))
    .pipe(gulp.dest(opts.destPath))
    .pipe(postcss([
      autoprefixer(opts.autoprefixer),
      cssnano({reduceIdents: {keyframes: false}})
    ]))
    .pipe(rename(opts.minRename))
    .pipe(gulp.dest(opts.destPath));
});
Пример #4
0
gulp.task('sass', function () {
    var processors = [                                  // https://github.com/ai/browserslist
        autoprefixer({                                  // 默认是 > 1%, last 2 versions, firefox ESR
            browsers: ['> 5%', 'last 5 versions', 'Firefox >= 20', 'IE >= 7']
        }),    
        cssnext,
        precss,
        cssnano()
    ];
    return gulp.src(src.scss)
               .pipe(sass().on('error', sass.logError))
               .pipe(postcss(processors))
               .pipe(gulp.dest(dest.css));
});
Пример #5
0
function generate (maps, css, options) {
    var file = options.file || 'styleguide'
    var project = options.name || 'Style Guide'
    var template = importTemplate(options)
    var tmplStyle = importStyle(options)
    var codeStyle = fs.readFileSync(__dirname + '/node_modules/highlight.js/styles/github.css', 'utf-8').trim()

    var obj = {
        projectName: project,
        css: nano(css),
        tmplStyle: nano(tmplStyle),
        codeStyle: nano(codeStyle),
        maps: maps
    }

    var html = ejs.render(template, obj)
    fs.writeFile(file + '.html', html, function (err) {
        if (err) {
            throw err
        }
        console.log('Successed to generate style guide')
    })
}
Пример #6
0
module.exports = () => ({
  plugins: [
    url,
    imports,
    mixins,
    nested,
    postCSSPresetEnv({
      stage: 1,
    }),
    cssnano({
      preset: "default",
    }),
  ],
});
Пример #7
0
const transformCss = exports.transformCss = function(filename, opt_cssnano) {
  opt_cssnano = opt_cssnano || Object.create(null);
  // See http://cssnano.co/optimisations/ for full list.
  // We try and turn off any optimization that is marked unsafe.
  const cssnanoOptions = Object.assign(Object.create(null),
      cssNanoDefaultOptions, opt_cssnano);
  const cssnanoTransformer = cssnano({preset: ['default', cssnanoOptions]});

  const css = fs.readFileSync(filename, 'utf8');
  const transformers = [postcssImport, cssprefixer, cssnanoTransformer];
  return postcss(transformers).process(css.toString(), {
    'from': filename,
  });
};
Пример #8
0
module.exports = (env, argv) => {
	return merge(
		config.getGlobalSettings(env, argv),
		{
			entry: config.getEntries('./**/*.scss', {
				ignore: ['./**/_*.scss'],
				cwd: './src/scss/'
			}),
			context: path.resolve(__dirname, 'src', 'scss'),
			output: {
				filename: '[name].css',
				path: path.join(__dirname, 'web', 'css')
			},
			module: {
				rules: [{
					test: /\.scss$/,
					use: ExtractTextPlugin.extract({use: [
						{loader: 'css-loader'},
						{loader: 'postcss-loader',
							options: {
								ident: 'postcss',
								plugins: [
									autoprefixer(),
									cssnano()
								]
							}
						},
						{loader: 'sass-loader'}
					]})
				}, {
					test: /\.jpg|\.png|\.webp|\.woff|\.woff2$/,
					use: [
						{loader: 'file-loader',
							options: {
								name: '[name].[ext]'
							}
						}
					]
				}]
			},
			plugins: [
				new ExtractTextPlugin({
					filename: '[name].css',
					allChunks: true
				})
			]
		}
	);
};
Пример #9
0
gulp.task('components', function() {
    return gulp.src('components/*-*.html')
        .pipe(htmlMin({
            removeComments: true,
            preventAttributesEscaping: true,
            collapseBooleanAttributes: true,
            collapseWhitespace: true,
            minifyJS: true
        }))
        .pipe(postCssHtml([
            autoprefixer,
            cssNano({safe: true})
        ]))
        .pipe(gulp.dest('components'));
});
Пример #10
0
gulp.task('scss', function () {
  var processors = [
        autoprefixer({browsers: ['last 1 version']}),
        cssnano(),
    ];
  return gulp.src('./styles/main.scss')
    .pipe(sourcemaps.init())
    .pipe(plumber())
    .pipe(sass({}))
    .pipe(postcss(processors))
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('public/styles'))//to see when deploying
    .pipe(gulp.dest('styles'))//to see while working
    .pipe(browserSync.stream());
});
Пример #11
0
function css(opts) {
    if (opts.postprocess) {
        var processors = [
            cssnext(),
            cssnano({autoprefixer: false}),
        ];
    } else { var processors = [] }

    return gulp.src('_sass/main.sass')
        .pipe(sourcemaps.init())
        .pipe(sass().on('error', sass.logError))
        .pipe(postcss(processors))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('_site/css'));
}
Пример #12
0
	var autoprefixer = require('autoprefixer');
	var cssnano = require('cssnano');
	var mqpacker = require('css-mqpacker');

	return gulp.src(cssFolder + '*.css')
		.pipe(postcss([
			mqpacker({
				sort: true
			}),
			autoprefixer(),
			cssnano()
		]))
		.pipe(gulp.dest(cssFolder));
});
Пример #13
0
function styles() {
  var processors = [
    cssnano({autoprefixer: {browsers: ['last 2 version'], add: true},
             discardComments: {removeAll: true}})
  ];
  return $.src('./src/assets/css/*')
    .pipe($order([
      "src/assets/css/*.css",
      "src/assets/css/*.scss"]))
    .pipe($changed('./build/dslab/css'))
    .pipe($if(file => P.extname(file.path) === '.scss', $sass()))
    .pipe($concat('style.css'))
    .pipe($postcss(processors))
    .pipe($.dest('./build/dslab/css'));
}
Пример #14
0
gulp.task('postcss', () => {
  const processors = [
    responsiveType,
    size,
    cssNext,
    cssMqpacker,
    cssNano({
      autoprefixer: ['ie >= 10', '> 2% in RU']
    }),
  ];
  return gulp.src('src/postcss/style.css')
    .pipe(postcss(processors))
    .pipe(gulp.dest('./dist/css/'))
    .pipe(browserSync.stream());
});
Пример #15
0
export default function(gulp, p, browserSync, options) {
    const args = options.args
    const config = options.config
    const dirs = config.directories
    const entries = config.entries
    const dest = path.join(options.target, dirs.main, dirs.styles.replace('_', ''))

    // autoprefixer support matrix
    const supported = [
        'last 2 version',
        '> 5%',
        'safari 5',
        'ios 6',
        'android 4'
    ]

    // postcss configuration
    const processors = (args.production) ? [
        autoprefixer(supported),
        cssnano({
            safe: true
        })
    ] : [
        autoprefixer(supported)
    ]

    // Sass
    return (done) => {
        gulp.src(path.join(dirs.source, dirs.styles, entries.css), {
                base: path.join(dirs.source, dirs.styles)
            })
            .pipe(p.if(!args.production, p.sourcemaps.init()))
            .pipe(p.sass({
                outputStyle: 'expanded',
                precision: 10
            }))
            .on('error', p.notify.onError(config.notification))
            .pipe(p.postcss(processors))
            .pipe(p.if(!args.production, p.sourcemaps.write('./')))
            .pipe(gulp.dest(dest))
            .on('end', () => {
                browserSync.stream({
                    match: '**/*.css'
                })
                done()
            })
    }
}
Пример #16
0
function css(done) {
    var processors = [
        easyimport,
        customProperties({preserve: false}),
        colorFunction(),
        autoprefixer({browsers: ['last 2 versions']}),
        cssnano()
    ];

    pump([
        src('assets/css/*.css', {sourcemaps: true}),
        postcss(processors),
        dest('assets/built/', {sourcemaps: '.'}),
        livereload()
    ], handleError(done));
}
Пример #17
0
gulp.task('sass', function () {
      var processors = [
        autoprefixer({ browsers: ['> 0%', 'last 2 versions'] }),
        csswring,
        cssnano({zindex : false}),
        opacity,
      ];

      return gulp.src(['assets/scss/*.scss', '!assets/scss/*.min.js'])
      .pipe(plumber({ errorHandler: onError }))
      .pipe(sass())
      .pipe(rename({suffix:'.min'}))
      .pipe(postcss(processors))
      .pipe(gulp.dest('./css'))
      .pipe(reload({stream:true}));
});
Пример #18
0
gulp.task('css', () => {
  var processors = [
    atImport,
    cssnext({browsers: ['last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4']}),
    simplevars,
    nestedcss,
    mqpacker,
    cssnano()
  ];
  return gulp.src(`${destFolder}/css/style.css`)
  .pipe(sourcemaps.init())
  .pipe(postcss(processors))
  .pipe(plumber()
  .pipe(sourcemaps.write('.'))
  .pipe(gulp.dest(`${destFolder}/dist`)));
});
gulp.task("compile-sass", function(){
    gulp.src("./src/scss/style.scss") // cargamos le archivo
    .pipe(sourcemaps.init()) // comenzamos la captura de sourcemaps
    .pipe(sass().on('error', sass.logError)) // compilamos el archivo SASS
    .pipe(postcss([
        autoprefixer(), // autoprefija automáticamente el CSS
        cssnano() // minifica el CSS
    ]))
    .pipe(sourcemaps.write('./')) // escribimos los sourcemaps
    .pipe(gulp.dest("./dist/css/")) // guardamos el archivo en dist/css
    .pipe(notify({
        title: "SASS",
        message: "Compiled 🤘"
    }))
    .pipe(browserSync.stream());
});
Пример #20
0
export async function styles() {
	return gulp
		.src('./src/clien*/styles/*.css', {
			sourcemaps: true,
		})
		.pipe(postcss([
			cssImport(),
			cssNext(),
			cssNano({
				autoprefixer: false,
			}),
		]))
		.pipe(gulp.dest('dist', {
			sourcemaps: '.',
		}));
}
Пример #21
0
function styles() {
  return gulp.src(config.styles.sass)
    .pipe(sourcemaps.init()) // Sourcemaps need to init before compilation
    .pipe(sassGlob()) // Allow for globbed @import statements in SCSS
    .pipe(sass()) // Compile
    .on('error', sass.logError) // Error reporting
    .pipe(postcss([
      autoprefixer(), // Autoprefix resulting CSS
      cssnano() // Minify
    ]))
    .pipe(rename({ // Rename to .min.css
      suffix: '.min'
    }))
    .pipe(sourcemaps.write()) // Write the sourcemap files
    .pipe(gulp.dest(config.styles.dest)) // Drop the resulting CSS file in the specified dir
    .pipe(browserSync.stream());
}
Пример #22
0
gulp.task('styles', () => {
	return gulp.src(['app/less/*.less'])
		.pipe($.changed('styles', {extension: '.less'}))
		.pipe($.plumber({
			errorHandler: err => {
				console.log(err);
				this.emit('end');
			}
		}))
		.pipe($.less())
		.pipe($.postcss([autoprefixer({browsers: AUTOPREFIXER_BROWSERS})]))
		.pipe(gulp.dest('dest/css'))
		.pipe($.postcss([cssnano()]))
		.pipe($.rename({suffix: '.min'}))
		.pipe(gulp.dest('dest/css'))
		.pipe($.size({title: 'styles'}));
});
Пример #23
0
 gulp.task('dev:styles', function () {
   return gulp.src(config.input.sass)
     // .pipe(plugins.sourcemaps.init())
     .pipe(plugins.sass.sync(config.sass).on('error', plugins.sass.logError))
     .pipe(plugins.postcss([
       cssnano(config.cssnano.dev),
       autoprefixer(config.autoprefixer.dev)
     ]))
     .pipe(plugins.header(banner, { pkg: pkg }))
     // .pipe(plugins.sourcemaps.write(config.output.sourcemaps))
     .pipe(plugins.debug({ title: 'Changed' }))
     .pipe(gulp.dest(config.output.css)).on('error', log.error)
     .pipe(plugins.postcss([rtlcss()]))
     .pipe(plugins.rename({ suffix: '-rtl' }))
     .pipe(plugins.debug({ title: 'RTLed' }))
     .pipe(gulp.dest(config.output.css)).on('error', log.error);
 });
Пример #24
0
gulp.task('css', function () {
  var processors = [
    mqpacker(),
    cssnano(),
  ];
  return gulp.src([
    './source/stylus/style.styl',
    './source/stylus/morph-content.styl'
  ])
    .pipe(plumber())
    .pipe(sourcemaps.init())
    .pipe(stylus())
    .pipe(postCSS(processors))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('./dist/'))
    .pipe(browserSync.stream());
});
Пример #25
0
gulp.task('build', function() {
  var processors = [
    autoprefix({browsers: ['last 2 version']}),
    cssnano({
      sourcemap: true
    })
  ];

  return gulp.src('./*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(sourcemaps.init())
    //.pipe(csscomb())
    //.pipe(cleancss())
    .pipe(postcss(processors))
    .pipe(sourcemaps.write('./maps'))
    .pipe(gulp.dest('./dist'))
});
Пример #26
0
gulp.task('sass', function() {
  return gulp.src('src/scss/**/*.scss')
    .pipe(sass({
      outputStyle: 'expanded'
    }))
    .pipe(gulp.dest('assets/css/'))
    .pipe(postcss([autoprefixer({
      browsers: ['last 2 versions'],
      cascade: false
    })]))
    .pipe(gulp.dest('assets/css/'))
    .pipe(postcss([cssnano()]))
    .pipe(rename({
      suffix: '.min'
    }))
    .pipe(gulp.dest('assets/css/'));
});
  function getPostCssPlugins (browsers) {
    var plugins = [
      autoprefixer({
        browsers: browsers
      }),
      mqPacker({
        sort: true
      }),
      pxtorem(pxtoremOptions)
    ];

    if (argv.prod) {
      plugins.push(cssNano());
    }

    return plugins;
  }
Пример #28
0
gulp.task('style:build', function () {
    var processors = [
      atImport,
      postcssShort,
      postcssMixins,
      postcssNested,
      postcssVars,
      postcssColor,
      postcssAssets,
      autoprefixer({browsers: ['last 2 version']}),
      cssnano(),  // разкомментить для минимайза
    ];
    return gulp.src(path.src.style) //Выберем наш main.scss
        .pipe(postcss(processors))
        .pipe(gulp.dest(path.build.css)) //И в build
        .pipe(reload({stream: true})); //И перезагрузим сервер
});
Пример #29
0
gulp.task('css', function () {
    var processors = [
        easyimport,
        customProperties,
        colorFunction(),
        autoprefixer({browsers: ['last 2 versions']}),
        cssnano()
    ];

    return gulp.src('assets/css/*.css')
        .on('error', swallowError)
        .pipe(sourcemaps.init())
        .pipe(postcss(processors))
        .pipe(sourcemaps.write('.'))
        .pipe(gulp.dest('assets/built/'))
        .pipe(livereload());
});
Пример #30
0
    .then(() => {
      let file = Path.join(__dirname, 'css/apostello.css');
      let css = FS.readFileSync(file, 'utf8');

      return PostCSS([
        AtImport,
        CSSnext({
          features: {
            rem: false
          }
        }),
        CSSnano({
          autoprefixer: false,
          safe: true
        })
      ]).process(css, { from: file });
    })