Beispiel #1
0
gulp.task('styl', function () {
  gulp.src(path.src.styl+'*.styl')
  .pipe(stylus({
     'include css': true,
     use: [rupture()],
  }))
  .on('error', onError)
  .pipe(postcss([
    autoprefixer(),
    clipPathPolyfill(),
    require('postcss-focus')(),
    cssvariables({
      preserve: true,
    }),
    cssMqpacker({sort: true}),
    assets({
      loadPaths: ['src/img/'],
      relative: 'src/stylus'
    }),
    // require('postcss-cssnext')(),
    require('cssnano')(),
  ]))
  .on('error', onError)
  .pipe(gulp.dest(path.public.css))
  .pipe(reload({stream:true}));
})
Beispiel #2
0
 postcss: function processPostcss(webpack) {
     return [
         postcssImport({
             addDependencyTo: webpack
         }),
         postcssCustomMedia(),
         postcssCssVariables(),
         postcssCalc(),
         precss,
         autoprefixer({ browsers: ['last 2 versions'] })
     ];
 },
    components.forEach(function (component) {
      var newDir = rmHtmlExt(component.replace('src/', ''))
      var newFile = newDir + '/index.html'
      var componentHtml = fs.readFileSync(component, 'utf8')

      var fmParsed = fm.parse(componentHtml)
      var frontMatter = fmParsed.attributes || {}
      frontMatter.bodyClass = frontMatter.bodyClass || ''
      frontMatter.title = frontMatter.title || getTitle(component)
      frontMatter.name = frontMatter.name || getName(component)
      frontMatter.classes = getClasses(fmParsed.body).map(function(klass) {
        return '.' + klass
      })
      frontMatter.componentHtml = componentHtml
      frontMatter.content = fmParsed.body
      frontMatter.escapedHtml = escapeHtml(fmParsed.body)
      frontMatter.footer = footer
      frontMatter.analytics = analytics
      frontMatter.head = head
      frontMatter.highlight = highlight
      frontMatter.componentsForNav = componentsForNav

      var moduleSrcs = {}
      var getModules = postcss.plugin('get-modules', function () {
        return function (css, result) {
          css.walkRules(function (rule) {
            moduleSrcs[rule.source.input.from] = true
          })
        }
      })

      postcss([
        atImport(), cssVariables(), conditionals(), customMedia(), select(frontMatter.classes),
        removeComments({ removeAll: true }), mqPacker(), removeEmpty(), getModules(), perfectionist()
      ]).process(tachyonsCss, {
        from: 'src/css/tachyons.css'
      }).then(function (result) {
        console.log('component css selection complete for', component)
        frontMatter.componentCss = result.css
        frontMatter.stats = cssstats(frontMatter.componentCss)

        // TODO: Update me once src/ uses the npm modules
        frontMatter.modules = Object.keys(moduleSrcs).map(function (module) {
          return 'tachyons-' + module.split('/_')[1].replace('.css', '')
        })

        var compiledPage = _.template(template)(frontMatter)
        console.log('creating new dir', newDir)
        mkdirp.sync(newDir)
        fs.writeFileSync(newFile, compiledPage)
        console.log('finished component build for', component)
      }).catch(function (e) { console.log(e) })
    })
 postcss: function(wp) {
   return [
     cssimports({
       addDependencyTo: wp
     }),
     cssvariables(),
     cssnesting(),
     rucksack({
       autoprefixer: true
     })
   ];
 },
Beispiel #5
0
var fs = require("fs")
var autoprefixer = require("autoprefixer")
var postcss = require("postcss")
var atImport = require("postcss-import")
var cssvariables = require('postcss-css-variables')
var compressor = require('node-minify')
var conditionals = require('postcss-conditionals')
var customMedia = require("postcss-custom-media")

// css to be processed
var css = fs.readFileSync("src/style.css", "utf8")

// process css
var output = postcss()
  .use(atImport())
  .use(cssvariables())
  .use(conditionals())
  .use(customMedia())
  .use(autoprefixer())
  .process(css, {
    from: "./src/style.css",
    to: "./css/style.css"
  })
  .css

fs.writeFile("css/style.css", output, 'utf-8')

// Using Sqwish for CSS
new compressor.minify({
    type: 'sqwish',
    fileIn: './css/style.css',
import include from 'postcss-import';
import precss from 'precss';
import variables from 'postcss-css-variables';
import cssnext from 'postcss-cssnext';
import assets from 'postcss-assets';
import mqpacker from 'css-mqpacker';

const options = require(path.resolve('config/kit'));

let files = options.entry.css.map((file) => path.join('app', 'css', file));

let plugins = [
  include(),
  precss(options.precss),
  variables(),
  cssnext(options.cssnext),
  assets({
    loadPaths: options.discover,
    basePath: 'build/'
  }),
  mqpacker({
    sort: true
  })
];

gulp.task('postcss', () => {
  return gulp.src(files, {base: 'app', allowEmpty: true})
    .pipe(postcss(plugins))
    .pipe(minify({keepSpecialComments: 0}))
    .pipe(gulp.dest('build'))
Beispiel #7
0
gulp.task('buildPackage', done => {
	console.log('[buildPackage]', argv.package);

	let p = `packages/${argv.package}/src/index.ts`;
	let plugins = [];
	let config = {
		mode: 'none',

		entry: {
			[p.split('/')[1]]: './' + p
		},

		output: {
			path: path.join(__dirname, '../../packages'),
			filename: '[name]/dist/index.js',
			library: '@riim/[name]',
			libraryTarget: 'umd'
		},

		module: {
			rules: [
				{
					test: /\.ts$/,
					exclude: /(?:node_modules|bower_components)/,
					enforce: 'pre',
					loader: 'tslint-loader'
				},
				{
					test: /\.ts$/,
					exclude: /(?:node_modules|bower_components)/,
					loader: 'awesome-typescript-loader'
				},
				{
					test: /\.rnt$/,
					loader: ['raw-loader', 'trim-lines-loader', 'collapse-line-breaks-loader']
				},
				{
					test: /\.css$/,
					loader: [
						'simple-css-loader',
						{
							loader: 'postcss-loader',
							options: {
								plugins: [
									postcssCSSVariables(),
									postcssRioniteComponent(),
									postcssNested(),
									postcssColorFunction(),
									autoprefixer({ browsers: ['last 3 versions'] }),
									csso({ restructure: false })
								]
							}
						}
					]
				},
				{
					test: /\.svg$/,
					loader: 'simple-svg-loader',
					options: {
						removeAttributes: ['stroke-width', 'stroke', 'fill']
					}
				}
			]
		},

		resolve: {
			extensions: ['.ts', '.js']
		},

		context: path.join(__dirname, '../..'),

		externals,

		plugins,

		node: {
			console: false,
			global: false,
			process: false,
			__filename: false,
			__dirname: false,
			Buffer: false,
			setImmediate: false
		}
	};

	webpack(config, onComplete);

	function onComplete(err, stats) {
		if (err) {
			onError(err);
		} else {
			let strStats = stats.toString({ colors: true, reasons: true });

			if (stats.hasErrors()) {
				onError(strStats);
			} else {
				onSuccess(strStats);
			}
		}
	}

	function onError(err) {
		done(new gutil.PluginError('webpack', err));
	}

	function onSuccess(detailInfo) {
		gutil.log('[webpack]', detailInfo);
		done();
	}
});
gulp.task('autoprefixer', function() {
    return gulp.src('src/*.css')
		.pipe(postcss([ autoprefixer, cssvariables(/* options */) ]))
		.pipe(gulp.dest('dest/'));
});
gulp.task('styles', function () {
  return gulp.src('src/*.css')
    .pipe(postcss([ nested(), cssvariables(), neat({neatMaxWidth: '64rem'}) ]))
    .pipe(gulp.dest('dest/'));
});