diff --git a/.gitignore b/.gitignore index 92ae13a19c6..6705c5e1ecf 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ node_modules/ npm-debug.log app/node_modules/ .DS_Store +.awcache diff --git a/app/webpack.common.js b/app/webpack.common.js index ea4966c861e..6755b6b8b95 100644 --- a/app/webpack.common.js +++ b/app/webpack.common.js @@ -16,7 +16,7 @@ const replacements = { } const commonConfig = { - externals: [ + externals: [ 'electron', 'net', 'remote', @@ -34,6 +34,20 @@ const commonConfig = { }, module: { rules: [ + { + test: /\.tsx?$/, + include: path.resolve(__dirname, 'src'), + use: [ + { + loader: 'awesome-typescript-loader', + options: { + useBabel: true, + useCache: true, + }, + } + ], + exclude: /node_modules/, + }, { test: /\.node$/, use: [ @@ -48,7 +62,6 @@ const commonConfig = { resolve: { extensions: [ '.js', '.ts', '.tsx' ], modules: [ path.resolve(__dirname, 'node_modules/') ], - mainFields: ['webpack', 'browser', 'web', 'browserify', ['jam', 'main'], 'main'] }, node: { __dirname: false, @@ -59,16 +72,6 @@ const commonConfig = { const mainConfig = merge({}, commonConfig, { entry: { main: path.resolve(__dirname, 'src/main-process/main') }, target: 'electron-main', - module: { - rules: [ - { - test: /\.ts$/, - include: path.resolve(__dirname, 'src'), - use: 'ts-loader', - exclude: /node_modules/, - } - ] - }, }) const rendererConfig = merge({}, commonConfig, { @@ -76,12 +79,6 @@ const rendererConfig = merge({}, commonConfig, { target: 'electron-renderer', module: { rules: [ - { - test: /\.tsx?$/, - include: path.resolve(__dirname, 'src'), - use: 'ts-loader', - exclude: /node_modules/, - }, { test: /\.(jpe?g|png|gif|ico)$/, use: ['file?name=[path][name].[ext]'] @@ -99,16 +96,6 @@ const rendererConfig = merge({}, commonConfig, { const sharedConfig = merge({}, commonConfig, { entry: { shared: path.resolve(__dirname, 'src/shared-process/index') }, target: 'electron-renderer', - module: { - rules: [ - { - test: /\.ts$/, - include: path.resolve(__dirname, 'src'), - use: 'ts-loader', - exclude: /node_modules/, - } - ] - }, plugins: [ new HtmlWebpackPlugin({ 'filename': 'shared.html', @@ -120,16 +107,6 @@ const sharedConfig = merge({}, commonConfig, { const askPassConfig = merge({}, commonConfig, { entry: { 'ask-pass': path.resolve(__dirname, 'src/ask-pass/main') }, target: 'node', - module: { - rules: [ - { - test: /\.ts$/, - include: path.resolve(__dirname, 'src'), - use: 'ts-loader', - exclude: /node_modules/, - } - ] - }, }) module.exports = { diff --git a/package.json b/package.json index ad4ac3324fc..e00a1a2a24e 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,9 @@ }, "dependencies": { "@niik/tslint-microsoft-contrib": "^2.0.14", + "awesome-typescript-loader": "^3.1.2", "aws-sdk": "^2.23.0", + "babel-core": "^6.24.1", "chai": "^3.5.0", "chai-as-promised": "^6.0.0", "chai-datetime": "^1.4.1",