aboutsummaryrefslogtreecommitdiff
path: root/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-05-24 15:10:37 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-05-24 15:11:17 +0200
commit7a3df06eb573d36142bd1a8e03c5ce8752d300b3 (patch)
tree70bfaea8884c374876f607774850a3a51c0cb381 /node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp
parentaca1143cb9eed16cf37f04e475e4257418dd18ac (diff)
fix build issues and add typedoc
Diffstat (limited to 'node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp')
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/README.md16
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/clean.js29
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/inject.js55
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/staticFiles.js31
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/tests.js45
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/webpack.js112
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulpFile.js54
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/karma.conf.js69
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/package.json87
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tsconfig.json22
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tslint.json91
-rw-r--r--node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/webpack.config.js65
12 files changed, 676 insertions, 0 deletions
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/README.md b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/README.md
new file mode 100644
index 000000000..e7a0cb064
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/README.md
@@ -0,0 +1,16 @@
+# TypeScript, Babel, React, and Karma Sample
+
+## Getting started
+
+You'll need [node / npm](https://nodejs.org/) installed. To get up and running just enter:
+
+```
+npm install
+npm run serve
+```
+
+This will:
+
+1. Download the npm packages you need (including the type definitions from DefinitelyTyped)
+2. Compile the code and serve it up at [http://localhost:8080](http://localhost:8080)
+
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/clean.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/clean.js
new file mode 100644
index 000000000..c51b4e416
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/clean.js
@@ -0,0 +1,29 @@
+'use strict';
+
+var del = require('del');
+var gutil = require('gulp-util');
+var fs = require('fs');
+
+function run(done) {
+ fs.stat('./dist', function(err){
+ if (err) {
+ // Never existed
+ done();
+ }
+ else {
+ del(['./dist'], { force: true })
+ .then(function(paths) {
+ gutil.log('Deleted files/folders:\n', paths.join('\n'));
+ done();
+ })
+ .catch(function(error) {
+ gutil.log('Problem deleting:\n', error);
+ done();
+ });
+ }
+ });
+}
+
+module.exports = {
+ run: function(done) { return run(done); }
+};
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/inject.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/inject.js
new file mode 100644
index 000000000..e4133e565
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/inject.js
@@ -0,0 +1,55 @@
+'use strict';
+
+var gulp = require('gulp');
+var inject = require('gulp-inject');
+var glob = require('glob');
+
+function injectIndex(options) {
+ function run() {
+ var target = gulp.src('./src/index.html');
+ var sources = gulp.src([
+ //'./dist/styles/main*.css',
+ './dist/scripts/vendor*.js',
+ './dist/scripts/main*.js'
+ ], { read: false });
+
+ return target
+ .pipe(inject(sources, { ignorePath: '/dist/', addRootSlash: false, removeTags: true }))
+ .pipe(gulp.dest('./dist'));
+ }
+
+ var jsCssGlob = 'dist/**/*.{js,css}';
+
+ function checkForInitialFilesThenRun() {
+ glob(jsCssGlob, function (er, files) {
+ var filesWeNeed = ['dist/scripts/main', 'dist/scripts/vendor'/*, 'dist/styles/main'*/];
+
+ function fileIsPresent(fileWeNeed) {
+ return files.some(function(file) {
+ return file.indexOf(fileWeNeed) !== -1;
+ });
+ }
+
+ if (filesWeNeed.every(fileIsPresent)) {
+ run('initial build');
+ } else {
+ checkForInitialFilesThenRun();
+ }
+ });
+ }
+
+ checkForInitialFilesThenRun();
+
+ if (options.shouldWatch) {
+ gulp.watch(jsCssGlob, function(evt) {
+ if (evt.path && evt.type === 'changed') {
+ run(evt.path);
+ }
+ });
+ }
+}
+
+module.exports = {
+ build: function() { return injectIndex({ shouldWatch: false }); },
+ watch: function() { return injectIndex({ shouldWatch: true }); }
+};
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/staticFiles.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/staticFiles.js
new file mode 100644
index 000000000..20327f272
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/staticFiles.js
@@ -0,0 +1,31 @@
+'use strict';
+
+var gulp = require('gulp');
+var cache = require('gulp-cached');
+
+var targets = [
+ { description: 'INDEX', src: './src/index.html', dest: './dist' }
+];
+
+function copy(options) {
+ function run(target) {
+ gulp.src(target.src)
+ .pipe(cache(target.description))
+ .pipe(gulp.dest(target.dest));
+ }
+
+ function watch(target) {
+ gulp.watch(target.src, function() { run(target); });
+ }
+
+ targets.forEach(run);
+
+ if (options.shouldWatch) {
+ targets.forEach(watch);
+ }
+}
+
+module.exports = {
+ build: function() { return copy({ shouldWatch: false }); },
+ watch: function() { return copy({ shouldWatch: true }); }
+};
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/tests.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/tests.js
new file mode 100644
index 000000000..05af0a551
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/tests.js
@@ -0,0 +1,45 @@
+'use strict';
+
+var Server = require('karma').Server;
+var path = require('path');
+var gutil = require('gulp-util');
+
+function runTests(options) {
+ // Documentation: https://karma-runner.github.io/0.13/dev/public-api.html
+ var karmaConfig = {
+ configFile: path.join(__dirname, '../karma.conf.js'),
+ singleRun: !options.shouldWatch,
+
+ plugins: ['karma-webpack', 'karma-jasmine', 'karma-mocha-reporter', 'karma-sourcemap-loader', 'karma-phantomjs-launcher'],
+ reporters: ['mocha']
+ };
+
+ if (options.done) {
+ karmaConfig.plugins.push('karma-junit-reporter');
+ karmaConfig.reporters.push('junit');
+ } else {
+ karmaConfig.plugins.push('karma-notify-reporter');
+ karmaConfig.reporters.push('notify');
+ }
+
+ new Server(karmaConfig, karmaCompleted).start();
+
+ function karmaCompleted(exitCode) {
+ if (options.done) {
+ if (exitCode === 1) {
+ gutil.log('Karma: tests failed with code ' + exitCode);
+ } else {
+ gutil.log('Karma completed!');
+ }
+ options.done();
+ }
+ else {
+ process.exit(exitCode);
+ }
+ }
+}
+
+module.exports = {
+ run: function(done) { return runTests({ shouldWatch: false, done: done }); },
+ watch: function() { return runTests({ shouldWatch: true }); }
+};
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/webpack.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/webpack.js
new file mode 100644
index 000000000..7607c122b
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulp/webpack.js
@@ -0,0 +1,112 @@
+'use strict';
+
+var gulp = require('gulp');
+var gutil = require('gulp-util');
+var webpack = require('webpack');
+var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
+var ForkTsCheckerNotifierWebpackPlugin = require('fork-ts-checker-notifier-webpack-plugin');
+var webpackFailPlugin = require('webpack-fail-plugin');
+
+var webpackConfig = require('../webpack.config.js');
+var packageJson = require('../package.json');
+
+function buildProduction(done) {
+ // modify some webpack config options
+ var myProdConfig = webpackConfig;
+ myProdConfig.output.filename = '[name].[hash].js';
+
+ myProdConfig.plugins = myProdConfig.plugins.concat(
+ new webpack.DefinePlugin({
+ 'process.env': {
+ 'NODE_ENV': JSON.stringify('production')
+ }
+ }),
+ new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: 'vendor.[hash].js' }),
+ new webpack.optimize.UglifyJsPlugin({
+ compress: {
+ warnings: true
+ }
+ }),
+ new ForkTsCheckerWebpackPlugin({
+ blockEmit: true,
+ // tslint: true,
+ watch: ['./src', './test'] // optional but improves performance (less stat calls)
+ }),
+ webpackFailPlugin
+ );
+
+ // run webpack
+ webpack(myProdConfig, function (err, stats) {
+ if (err) { throw new gutil.PluginError('webpack:build', err); }
+ gutil.log('[webpack:build]', stats.toString({
+ colors: true
+ }));
+
+ if (done) { done(); }
+ });
+}
+
+function createDevCompiler() {
+ // modify some webpack config options
+ var myDevConfig = webpackConfig;
+ myDevConfig.devtool = 'inline-source-map';
+
+ myDevConfig.plugins = myDevConfig.plugins.concat(
+ new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', filename: 'vendor.js' }),
+ new ForkTsCheckerNotifierWebpackPlugin ({ title: 'Build', excludeWarnings: false }),
+ new ForkTsCheckerWebpackPlugin({
+ blockEmit: false,
+ // tslint: true,
+ watch: ['./src'] // optional but improves performance (less stat calls)
+ })
+ );
+
+ // create a single instance of the compiler to allow caching
+ return webpack(myDevConfig);
+}
+
+function build() {
+ return new Promise(function (resolve, reject) {
+ buildProduction(function (err) {
+ if (err) {
+ reject(err);
+ } else {
+ resolve('webpack built');
+ }
+ });
+ });
+}
+
+function watch() {
+ var firstBuildDone = false;
+
+ return new Promise(function (resolve, reject) {
+ var devCompiler = createDevCompiler();
+ devCompiler.watch({ // watch options:
+ aggregateTimeout: 300 // wait so long for more changes
+ }, function (err, stats) {
+ if (err) {
+ if (!firstBuildDone) {
+ firstBuildDone = true;
+ reject(err);
+ }
+ throw new gutil.PluginError('webpack:build-dev', err);
+ } else {
+ if (!firstBuildDone) {
+ firstBuildDone = true;
+ resolve('webpack built');
+ }
+ }
+
+ gutil.log('[webpack:build-dev]', stats.toString({
+ chunks: false,
+ colors: true
+ }));
+ });
+ });
+}
+
+module.exports = {
+ build: function () { return build(); },
+ watch: function () { return watch(); }
+};
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulpFile.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulpFile.js
new file mode 100644
index 000000000..02fcbc0d5
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/gulpFile.js
@@ -0,0 +1,54 @@
+/* eslint-disable no-var, strict, prefer-arrow-callback */
+'use strict';
+
+var gulp = require('gulp');
+var gutil = require('gulp-util');
+var webpack = require('./gulp/webpack');
+var staticFiles = require('./gulp/staticFiles');
+var tests = require('./gulp/tests');
+var clean = require('./gulp/clean');
+var inject = require('./gulp/inject');
+
+var lintSrcs = ['./gulp/**/*.js'];
+
+gulp.task('delete-dist', function (done) {
+ clean.run(done);
+});
+
+gulp.task('build-js', ['delete-dist'], function(done) {
+ webpack.build().then(function() { done(); });
+});
+
+gulp.task('build-other', ['delete-dist'], function() {
+ staticFiles.build();
+});
+
+gulp.task('build', ['build-js', 'build-other'], function () {
+ inject.build();
+});
+
+gulp.task('watch', ['delete-dist'], function(done) {
+ process.env.NODE_ENV = 'development';
+ Promise.all([
+ webpack.watch()//,
+ //less.watch()
+ ]).then(function() {
+ gutil.log('Now that initial assets (js and css) are generated inject will start...');
+ inject.watch();
+ done();
+ }).catch(function(error) {
+ gutil.log('Problem generating initial assets (js and css)', error);
+ });
+
+ staticFiles.watch();
+ tests.watch();
+});
+
+gulp.task('watch-and-serve', ['watch'], function() {
+ // local as not required for build
+ var express = require('express')
+ var app = express()
+
+ app.use(express.static('dist', {'index': 'index.html'}))
+ app.listen(8080);
+});
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/karma.conf.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/karma.conf.js
new file mode 100644
index 000000000..1c35404d6
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/karma.conf.js
@@ -0,0 +1,69 @@
+/* eslint-disable no-var, strict */
+'use strict';
+
+var webpackConfig = require('./webpack.config.js');
+var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
+var ForkTsCheckerNotifierWebpackPlugin = require('fork-ts-checker-notifier-webpack-plugin');
+
+module.exports = function (config) {
+ var forkTsCheckerOptions = {
+ blockEmit: true,
+ watch: ['./test'] // optional but improves performance (less stat calls)
+ };
+ var plugins = config.singleRun
+ ? [
+ new ForkTsCheckerWebpackPlugin(forkTsCheckerOptions)
+ ]
+ : [
+ new ForkTsCheckerNotifierWebpackPlugin({ title: 'Tests Build', excludeWarnings: false }),
+ new ForkTsCheckerWebpackPlugin(Object.assign({}, forkTsCheckerOptions, { blockEmit: false }))
+ ];
+
+ // Documentation: https://karma-runner.github.io/0.13/config/configuration-file.html
+ config.set({
+ browsers: ['PhantomJS'],
+
+ files: [
+ // This ensures we have the es6 shims in place and then loads all the tests
+ 'test/main.js'
+ ],
+
+ port: 9876,
+
+ frameworks: ['jasmine'],
+
+ logLevel: config.LOG_INFO, //config.LOG_DEBUG
+
+ preprocessors: {
+ 'test/main.js': ['webpack', 'sourcemap']
+ },
+
+ webpack: {
+ devtool: 'inline-source-map',
+ module: webpackConfig.module,
+ resolve: webpackConfig.resolve,
+ plugins: plugins
+ },
+
+ webpackMiddleware: {
+ quiet: true,
+ stats: {
+ colors: true
+ }
+ },
+
+ // reporter options
+ mochaReporter: {
+ colors: {
+ success: 'bgGreen',
+ info: 'cyan',
+ warning: 'bgBlue',
+ error: 'bgRed'
+ }
+ },
+
+ notifyReporter: {
+ reportSuccess: false // Default: true, Will notify when a suite was successful
+ }
+ });
+};
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/package.json b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/package.json
new file mode 100644
index 000000000..a651593b8
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/package.json
@@ -0,0 +1,87 @@
+{
+ "name": "es6-babel-react-flux-karma",
+ "version": "1.0.0",
+ "description": "ES6 + TypeScript + Babel + React + Karma: The Secret Recipe",
+ "main": "index.js",
+ "scripts": {
+ "test": "karma start --reporters mocha,junit --single-run --browsers PhantomJS",
+ "serve": "gulp watch-and-serve",
+ "watch": "gulp watch",
+ "build": "gulp build"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/microsoft/typescriptsamples.git"
+ },
+ "keywords": [
+ "React",
+ "Flux",
+ "ES2016",
+ "typescript"
+ ],
+ "author": "John Reilly",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/microsoft/typescriptsamples/issues"
+ },
+ "homepage": "https://github.com/Microsoft/TypeScriptSamples/tree/master/es6-babel-react-flux-karma#readme",
+ "devDependencies": {
+ "@types/fbemitter": "^2.0.32",
+ "@types/flux": "0.0.32",
+ "@types/jasmine": "^2.5.35",
+ "@types/react": "^0.14.41",
+ "@types/react-addons-test-utils": "^0.14.15",
+ "@types/react-bootstrap": "0.0.33",
+ "@types/react-dom": "^0.14.18",
+ "@types/react-test-renderer": "^15.5.0",
+ "babel": "^6.0.0",
+ "babel-core": "^6.0.0",
+ "babel-loader": "^7.0.0",
+ "babel-preset-es2015": "^6.0.0",
+ "babel-preset-es2016": "^6.16.0",
+ "babel-preset-react": "^6.0.0",
+ "del": "^2.0.2",
+ "express": "^4.13.3",
+ "fork-ts-checker-notifier-webpack-plugin": "^0.1.3",
+ "fork-ts-checker-webpack-plugin": "^0.1.1",
+ "glob": "^7.0.0",
+ "gulp": "^3.9.0",
+ "gulp-autoprefixer": "^3.1.0",
+ "gulp-cached": "^1.1.0",
+ "gulp-cssmin": "^0.1.7",
+ "gulp-eslint": "^2.0.0",
+ "gulp-if": "^2.0.0",
+ "gulp-inject": "^3.0.0",
+ "gulp-notify": "^2.2.0",
+ "gulp-sourcemaps": "^1.5.2",
+ "gulp-streamify": "1.0.2",
+ "gulp-uglify": "^1.2.0",
+ "gulp-util": "^3.0.6",
+ "jasmine-core": "^2.3.4",
+ "karma": "^1.2.0",
+ "karma-jasmine": "^1.0.0",
+ "karma-junit-reporter": "^1.0.0",
+ "karma-mocha-reporter": "^2.0.0",
+ "karma-notify-reporter": "^1.0.0",
+ "karma-phantomjs-launcher": "^1.0.0",
+ "karma-sourcemap-loader": "^0.3.6",
+ "karma-webpack": "^2.0.1",
+ "phantomjs-prebuilt": "^2.1.4",
+ "react-addons-test-utils": "^15.3.1",
+ "react-test-renderer": "^15.5.4",
+ "ts-loader": "^2.0.0",
+ "tslint": "^5.1.0",
+ "tslint-react": "^3.0.0",
+ "typescript": "^2.1.4",
+ "webpack": "^2.2.0",
+ "webpack-fail-plugin": "^1.0.4",
+ "webpack-notifier": "^1.2.1"
+ },
+ "dependencies": {
+ "babel-polyfill": "^6.0.0",
+ "flux": "^2.0.3",
+ "fbemitter": "^2.0.2",
+ "react": "^15.4.1",
+ "react-dom": "^15.4.1"
+ }
+}
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tsconfig.json b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tsconfig.json
new file mode 100644
index 000000000..c3a732c12
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compileOnSave": false,
+ "compilerOptions": {
+ "allowSyntheticDefaultImports": true,
+ "lib": [
+ "dom",
+ "es2015",
+ "es2016"
+ ],
+ "jsx": "preserve",
+ "target": "es2016",
+ "module": "es2015",
+ "moduleResolution": "node",
+ "noImplicitAny": true,
+ "noUnusedLocals": true,
+ "noUnusedParameters": true,
+ "removeComments": false,
+ "preserveConstEnums": true,
+ "sourceMap": true,
+ "skipLibCheck": true
+ }
+} \ No newline at end of file
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tslint.json b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tslint.json
new file mode 100644
index 000000000..40d93780b
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/tslint.json
@@ -0,0 +1,91 @@
+{
+ "extends": [
+ "tslint:recommended",
+ "tslint-react"
+ ],
+ "rules": {
+ "arrow-parens": false,
+ "class-name": true,
+ "comment-format": [
+ true,
+ "check-space"
+ ],
+ "indent": [
+ true,
+ "spaces"
+ ],
+ "interface-name": [
+ false
+ ],
+ "jsx-alignment": false,
+ "jsx-no-lambda": true,
+ "jsx-wrap-multiline": false,
+ "jsx-no-multiline-js": false,
+ "jsx-no-string-ref": true,
+ "jsx-self-close": true,
+ "jsx-curly-spacing": "always",
+ "jsx-boolean-value": false,
+ "max-classes-per-file": {
+ "severity": "warning",
+ "options": [true, 1]
+ },
+ "max-line-length": [
+ false
+ ],
+ "member-access": false,
+ "no-duplicate-variable": true,
+ "no-empty": false,
+ "no-eval": true,
+ "no-internal-module": true,
+ "no-trailing-whitespace": true,
+ "no-var-keyword": true,
+ "object-literal-sort-keys": false,
+ "one-line": [
+ true,
+ "check-open-brace",
+ "check-whitespace"
+ ],
+ "ordered-imports": false,
+ "radix": false,
+ "quotemark": [
+ true,
+ "single",
+ "avoid-escape",
+ "jsx-double"
+ ],
+ "semicolon": [
+ true,
+ "always"
+ ],
+ "switch-default": false,
+ "trailing-comma": [
+ false
+ ],
+ "triple-equals": [
+ true,
+ "allow-null-check"
+ ],
+ "typedef-whitespace": [
+ true,
+ {
+ "call-signature": "nospace",
+ "index-signature": "nospace",
+ "parameter": "nospace",
+ "property-declaration": "nospace",
+ "variable-declaration": "nospace"
+ }
+ ],
+ "variable-name": [
+ true,
+ "ban-keywords"
+ ],
+ "whitespace": [
+ true,
+ "check-branch",
+ "check-decl",
+ "check-operator",
+ "check-separator",
+ "check-type"
+ ]
+ }
+} \ No newline at end of file
diff --git a/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/webpack.config.js b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/webpack.config.js
new file mode 100644
index 000000000..4c2922969
--- /dev/null
+++ b/node_modules/ts-loader/examples/fork-ts-checker-react-babel-karma-gulp/webpack.config.js
@@ -0,0 +1,65 @@
+'use strict';
+
+var path = require('path');
+
+var babelOptions = {
+ "presets": [
+ "react",
+ [
+ "es2015",
+ {
+ "modules": false
+ }
+ ],
+ "es2016"
+ ]
+};
+
+module.exports = {
+ cache: true,
+ entry: {
+ main: './src/main.tsx',
+ vendor: [
+ 'babel-polyfill',
+ 'fbemitter',
+ 'flux',
+ 'react',
+ 'react-dom'
+ ]
+ },
+ output: {
+ path: path.resolve(__dirname, './dist/scripts'),
+ filename: '[name].js',
+ chunkFilename: '[chunkhash].js'
+ },
+ module: {
+ rules: [{
+ test: /\.ts(x?)$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'babel-loader',
+ options: babelOptions
+ },
+ {
+ loader: 'ts-loader',
+ options: { transpileOnly: true }
+ }
+ ]
+ }, {
+ test: /\.js$/,
+ exclude: /node_modules/,
+ use: [
+ {
+ loader: 'babel-loader',
+ options: babelOptions
+ }
+ ]
+ }]
+ },
+ plugins: [
+ ],
+ resolve: {
+ extensions: ['.ts', '.tsx', '.js']
+ },
+};