diff --git a/karma.conf.js b/karma.conf.js index d20fbf6..26d007c 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,92 +1 @@ -const webpackConfig = require('./webpack.config'); -const sauceBrowsers = require('./sauce.browsers'); - -module.exports = function (config) { - // list of files / patterns to load in the browser - // all dependancies should be traced through here - var files = ['test/unit.js']; - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - // webpack will trace and watch all dependancies - var preprocessors = { - 'test/unit.js': [ 'webpack', 'sourcemap' ] - }; - - if (process.argv.indexOf('--perf') > -1) { - files = [ require.resolve('../benchmark/benchmark.js'), 'test/perf.js' ]; - preprocessors = { - 'test/perf.js': [ 'webpack', 'sourcemap' ] - }; - } - - config.set(Object.assign({ - // base path that will be used to resolve all patterns (eg. files, exclude) - // setting to process.cwd will make all paths start in current component directory - basePath: process.cwd(), - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: [ 'mocha', 'chai', 'sinon-chai' ], - - // list of files / patterns to load in the browser - files: files, - - // list of files to exclude - exclude: [], - - // list of preprocessors - preprocessors: preprocessors, - - // karma watches the test entry points - // (you don't need to specify the entry option) - // webpack watches dependencies - webpack: Object.assign({}, webpackConfig, { - devtool: 'inline-source-map', - entry: undefined - }), - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: [ 'progress' ], - - // web server port - port: 9876, - - // enable / disable colors in the output (reporters and logs) - colors: true, - - // level of logging - // possible values: LOG_DISABLE, LOG_ERROR, LOG_WARN, LOG_INFO, LOG_DEBUG - logLevel: config.LOG_INFO, - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: [ 'Chrome', 'Firefox' ], - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity - }, process.argv.indexOf('--saucelabs') === -1 ? {} : { - sauceLabs: { - testName: 'Unit Tests', - recordScreenshots: false, - connectOptions: { verbose: true } - }, - customLaunchers: sauceBrowsers, - browsers: Object.keys(sauceBrowsers), - captureTimeout: 120000, - reporters: [ 'saucelabs', 'dots' ], - autoWatch: false, - concurrency: 5, - client: {} - })); -}; +module.exports = require('skatejs-build/karma.conf'); diff --git a/rollup.config.js b/rollup.config.js index 5a693ad..8102bf0 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -1,34 +1 @@ -const rollupBabel = require('rollup-plugin-babel'); -const rollupCommonjs = require('rollup-plugin-commonjs'); -const rollupNodeResolve = require('rollup-plugin-node-resolve'); -const rollupUglify = require('rollup-plugin-uglify'); -const path = require('path'); -const pkg = require(path.join(process.cwd(), 'package.json')); -const shouldMinify = process.argv.indexOf('--min') !== -1; -const presetEs2015 = require('babel-preset-es2015-rollup'); -const babel = rollupBabel({ - presets: presetEs2015, -}); -const plugins = [ - babel, - rollupCommonjs(), - rollupNodeResolve(), -]; - -if (shouldMinify) { - plugins.push(rollupUglify()); -} - -const entry = pkg['jsnext:main'] || pkg.main || 'src/index.js'; -const moduleName = pkg['build:global'] || pkg.name; - -module.exports = { - dest: 'dist/index' + (shouldMinify ? '.min' : '') + '.js', - entry, - exports: 'named', - format: 'umd', - moduleName, - plugins, - sourceMap: true, - useStrict: false, -}; +module.exports = require('skatejs-build/rollup.config'); diff --git a/sauce.browsers.js b/sauce.browsers.js deleted file mode 100644 index e7b0e90..0000000 --- a/sauce.browsers.js +++ /dev/null @@ -1,141 +0,0 @@ -const sauceBrowsers = { - // Chrome - chrome_latest_linux: { - browserName: 'chrome', - platform: 'Linux', - version: 'latest' - }, - chrome_latest_windows: { - browserName: 'chrome', - platform: 'Windows 10', - version: 'latest' - }, - chrome_latest_osx: { - browserName: 'chrome', - platform: 'OS X 10.11', - version: 'latest' - }, - chrome_latest_1: { - browserName: 'chrome', - platform: 'Linux', - version: 'latest-1' - }, - chrome_latest_2: { - browserName: 'chrome', - platform: 'Linux', - version: 'latest-2' - }, - chrome_latest_3: { - browserName: 'chrome', - platform: 'Linux', - version: 'latest-3' - }, - chrome_latest_4: { - browserName: 'chrome', - platform: 'Linux', - version: 'latest-4' - }, - - // Firefox - firefox_latest_linux: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest' - }, - firefox_latest_windows: { - browserName: 'firefox', - platform: 'Windows 10', - version: 'latest' - }, - firefox_latest_osx: { - browserName: 'firefox', - platform: 'OS X 10.11', - version: 'latest' - }, - firefox_latest_1: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest-1' - }, - firefox_latest_2: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest-2' - }, - firefox_latest_3: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest-3' - }, - firefox_latest_4: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest-4' - }, - firefox_latest_5: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest-5' - }, - firefox_latest_6: { - browserName: 'firefox', - platform: 'Linux', - version: 'latest-6' - }, - - // Safari (<= 8 is severely crippled) - safari_latest: { - browserName: 'safari', - version: 'latest', - platform: 'OS X 10.11' - }, - - // IE - internet_explorer_11: { - browserName: 'internet explorer', - version: '11', - platform: 'Windows 8.1' - }, - internet_explorer_10: { - browserName: 'internet explorer', - version: '10', - platform: 'Windows 8' - }, - internet_explorer_9: { - browserName: 'internet explorer', - version: '9', - platform: 'Windows 7' - }, - - // Edge - microsoftedge_latest: { - browserName: 'microsoftedge', - platform: 'Windows 10', - version: 'latest' - }, - - // Opera (they don't have Opera latest with Blink) - opera_12: { - browserName: 'opera', - platform: 'Windows 7', - version: '12.12' - }, - - // iOS - iphone: { - browserName: 'iphone', - platform: 'OS X 10.10', - version: 'latest', - deviceName: 'iPhone Simulator' - }, - - // Android (when they update their images to 43+) - android: {} -}; - -Object.keys(sauceBrowsers).forEach(function (key) { - sauceBrowsers[key].base = 'SauceLabs'; -}); - - -module.exports = sauceBrowsers; \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index 7fca3be..342723a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,46 +1 @@ -var camelCase = require('camelcase'); -var path = require('path'); -var webpack = require('webpack'); -var pkg = require(path.join(process.cwd(), 'package.json')); -var shouldMininimize = process.argv.indexOf('--min') !== -1; -var standardConfig = { - entry: { - 'dist/bundle.js': './src/index.js' - }, - output: { - path: './', - filename: '[name]', - libraryTarget: 'umd', - library: camelCase(pkg.name), - sourceMapFilename: '[file].map' - }, - module: { - loaders: [{ - test: /\.css$/, - loader: 'style!css' - }, { - test: /\.less$/, - loader: 'style!css!less' - }, { - loader: 'babel-loader', - test: /\.js$/, - query: { - presets: ['babel-preset-es2015', 'babel-preset-react'] - } - }] - }, - plugins: [ - new webpack.optimize.UglifyJsPlugin({ - include: /\.min\.js$/, - minimize: true - }) - ] -}; - -if (shouldMininimize) { - Object.assign(standardConfig.entry, { - 'dist/bundle.min.js': './src/index.js' - }); -} - -module.exports = standardConfig; +module.exports = require('skatejs-build/webpack.config');