diff --git a/.gitignore b/.gitignore index 2788511..bea4773 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ typings out typings .idea/ +tmp diff --git a/karma.conf.js b/karma.conf.js index b0ad559..e2d2446 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,8 +1,7 @@ 'use strict'; var webpackConfig = require('./webpack/webpack.test.js'); -require('phantomjs-polyfill') -webpackConfig.entry = {}; +require('phantomjs-polyfill'); module.exports = function (config) { config.set({ diff --git a/package.json b/package.json index db736e1..e38a41f 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "description": "A seed project for a largescale angular architecture in webpack and typescript", "main": "/", "scripts": { - "start": "webpack --config webpack/webpack.dev.js --watch --NODE_ENV=dev", + "start": "webpack --config webpack/webpack.dev.js --watch", "test": "karma start --NODE_ENV=test", - "build": "webpack --config webpack/webpack.build.js --NODE_ENV=production" + "build": "webpack --config webpack/webpack.build.js" }, "author": "Brecht Billiet ", "license": "MIT", @@ -17,8 +17,8 @@ "@types/bootstrap": "~3.3.32", "@types/jasmine": "~2.5.37", "@types/jwt-decode": "~1.4.28", - "@types/lodash": "~4.14.38", "@types/source-map": "~0.1.29", + "@types/lodash": "~4.14.52", "@types/uglify-js": "~2.6.28", "angular": "~1.5.8", "angular-route": "~1.5.8", @@ -49,18 +49,18 @@ "karma-sourcemap-loader": "0.3.7", "karma-spec-reporter": "0.0.26", "karma-typescript-preprocessor": "~0.3.0", - "karma-webpack": "~1.8.0", + "karma-webpack": "~2.0.2", "node-sass": "~3.11.1", "phantomjs-polyfill": "0.0.2", "phantomjs-prebuilt": "~2.1.13", "raw-loader": "0.5.1", "sass-loader": "~4.0.2", "style-loader": "0.13.1", - "ts-loader": "~1.0.0", - "typescript": "~2.0.6", + "ts-loader": "~2.0.0", + "typescript": "~2.1.5", "typings": "~1.5.0", "url-loader": "0.5.7", "wallaby-webpack": "0.0.26", - "webpack": "~1.13.3" + "webpack": "~2.2.1" } } diff --git a/webpack/loaders.js b/webpack/loaders.js index da9636b..113c2cc 100644 --- a/webpack/loaders.js +++ b/webpack/loaders.js @@ -1,29 +1,43 @@ module.exports = [ - {test: /\.ts(x?)$/, loader: 'ts-loader'}, + { + test: /\.ts(x?)$/, + use:[{loader: 'ts-loader'}] + }, { test: /\.css$/, - loader: 'style-loader!css-loader' + use:[{loader: 'style-loader'},{loader: 'css-loader'}] }, { test: /\.scss$/, - loader: 'style!css!sass' + use:[{loader: 'style-loader'},{loader: 'css-loader'},{loader: 'sass-loader'}] }, { test: /\.html$/, exclude: /node_modules/, - loader: 'raw' + use:[{loader: 'raw-loader'}] }, { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, - loader: 'url-loader?limit=10000&mimetype=application/font-woff' + use:[{loader: 'url-loader?limit=10000&mimetype=application/font-woff'}] }, { test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, - loader: 'file-loader' + use:[{loader: 'file-loader'}] }, { test: '\.jpg$', exclude: /node_modules/, - loader: 'file' + use:[{loader: 'file-loader'}] }, { test: '\.png$', exclude: /node_modules/, - loader: 'url' + use:[{loader: 'url-loader'}] + }, + { + test: /^((?!\.spec\.ts).)*.ts$/, + exclude: /(node_modules|bower_components)/, + use:[{loader: 'istanbul-instrumenter-loader'}], + enforce:'post' + }, + { + test: /\.ts$/, + use:[{loader: 'tslint-loader'}], + enforce:'pre' } ]; diff --git a/webpack/preloaders.js b/webpack/preloaders.js deleted file mode 100644 index d581771..0000000 --- a/webpack/preloaders.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = [ - { - test: /\.ts$/, - loader: 'tslint' - } -]; diff --git a/webpack/webpack.build.js b/webpack/webpack.build.js index f14cc47..be64e14 100644 --- a/webpack/webpack.build.js +++ b/webpack/webpack.build.js @@ -1,7 +1,7 @@ var loaders = require("./loaders"); -var preloaders = require("./preloaders"); var HtmlWebpackPlugin = require('html-webpack-plugin'); var webpack = require('webpack'); +var path = require('path'); module.exports = { entry: ['./src/index.ts'], @@ -11,16 +11,15 @@ module.exports = { }, devtool: 'source-map', resolve: { - root: __dirname, - extensions: ['', '.ts', '.js', '.json'] - }, - resolveLoader: { - modulesDirectories: ["node_modules"] + modules: [ + path.join(__dirname, "src"), + 'node_modules' + ], + extensions: ['.ts', '.js', '.json','.css', '.scss'] }, plugins: [ new webpack.optimize.UglifyJsPlugin( { - warning: false, mangle: true, comments: false } @@ -38,11 +37,6 @@ module.exports = { }) ], module:{ - preLoaders:preloaders, loaders: loaders - }, - tslint: { - emitErrors: true, - failOnHint: true - } + } }; \ No newline at end of file diff --git a/webpack/webpack.dev.js b/webpack/webpack.dev.js index 622ef50..ddf0b09 100644 --- a/webpack/webpack.dev.js +++ b/webpack/webpack.dev.js @@ -2,6 +2,7 @@ var loaders = require("./loaders"); var BrowserSyncPlugin = require('browser-sync-webpack-plugin'); var HtmlWebpackPlugin = require('html-webpack-plugin'); var webpack = require('webpack'); +var path = require('path'); module.exports = { entry: ['./src/index.ts'], output: { @@ -9,11 +10,11 @@ module.exports = { path: 'dist' }, resolve: { - root: __dirname, - extensions: ['', '.ts', '.js', '.json'] - }, - resolveLoader: { - modulesDirectories: ["node_modules"] + modules: [ + path.join(__dirname, "src"), + 'node_modules' + ], + extensions: ['.ts', '.js', '.json','.css', '.scss'] }, devtool: "inline-eval-cheap-source-map", plugins: [ diff --git a/webpack/webpack.test.js b/webpack/webpack.test.js index 7a06692..c8239b3 100644 --- a/webpack/webpack.test.js +++ b/webpack/webpack.test.js @@ -1,20 +1,21 @@ -var preloaders = require("./preloaders"); -var loaders = require("./loaders"); var webpack = require('webpack'); +var path = require('path'); +var loaders = require("./loaders"); + module.exports = { entry: ['./src/index.ts'], output: { filename: 'build.js', path: 'tmp' }, - resolve: { - root: __dirname, - extensions: ['', '.ts', '.js', '.json'] - }, - resolveLoader: { - modulesDirectories: ["node_modules"] - }, - devtool: "source-map-inline", + resolve: { + modules: [ + path.join(__dirname, "src"), + 'node_modules' + ], + extensions: ['.ts', '.js', '.json','.css', '.scss'] + }, + devtool: "source-map-inline", plugins: [ new webpack.ProvidePlugin({ $: 'jquery', @@ -23,20 +24,8 @@ module.exports = { 'window.jquery': 'jquery' }) ], - module: { - preLoaders:preloaders, - loaders: loaders, - postLoaders: [ - { - test: /^((?!\.spec\.ts).)*.ts$/, - exclude: /(node_modules|bower_components)/, - loader: 'istanbul-instrumenter' - } - ] - }, - tslint: { - emitErrors: true, - failOnHint: true - } + module:{ + loaders: loaders + } };