diff --git a/package.json b/package.json index f344126761..8b7f5d66ae 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "prepublishOnly": "npm run build", "lint": "tslint --project ./src", "build": "rimraf ./build && tsc -p src", + "webpack": "rimraf ./build && webpack", "demo": "npm run build && node ./demo", "typedoc": "typedoc --out docs/ src/ --module commonjs --target ES6 --disableOutputCheck" }, @@ -53,6 +54,7 @@ "devDependencies": { "@types/chai": "^3.4.35", "@types/mocha": "^2.2.39", + "awesome-typescript-loader": "^3.4.1", "chai": "^3.5.0", "mocha": "^3.2.0", "prompt": "^1.0.0", @@ -60,6 +62,7 @@ "shelljs": "^0.7.7", "tslint": "^5.1.0", "typedoc": "^0.5.10", - "typescript": "2.4.1" + "typescript": "2.4.1", + "webpack": "^3.10.0" } } diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000000..847516f798 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,31 @@ +const path = require('path'); +const { TsConfigPathsPlugin } = require('awesome-typescript-loader'); + +module.exports = { + entry: './src/index.ts', + + output: { + path: path.resolve('build'), + filename: 'bundle.js' + }, + + resolve: { + extensions: ['.ts', '.tsx', '.js'], + plugins: [ + new TsConfigPathsPlugin(/* { configFileName, compiler } */) + ] + }, + + // Source maps support ('inline-source-map' also works) + devtool: 'source-map', + + module: { + rules: [ + { + test: /\.ts|\.tsx$/, + loader: 'awesome-typescript-loader', + exclude: [/^(?!.*\.spec\.ts$).*\.ts$/] + } + ] + }, +};