diff --git a/.DS_Store b/.DS_Store index 7ae00fca..2e216c5d 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/examples/.DS_Store b/examples/.DS_Store new file mode 100644 index 00000000..69e3bc2c Binary files /dev/null and b/examples/.DS_Store differ diff --git a/examples/babel-loader/.babelrc.js b/examples/babel-loader/.babelrc.js new file mode 100644 index 00000000..2d074285 --- /dev/null +++ b/examples/babel-loader/.babelrc.js @@ -0,0 +1,6 @@ +module.exports = { + "presets": [ + "@babel/preset-env", + "@babel/preset-typescript" + ] +} diff --git a/examples/babel-loader/README.md b/examples/babel-loader/README.md new file mode 100644 index 00000000..1fe8fcd4 --- /dev/null +++ b/examples/babel-loader/README.md @@ -0,0 +1,17 @@ +## babel-loader configuration example + +It's a basic configuration of the plugin and [babel-loader](https://github.com/babel/babel-loader). +Very similar to the [ts-loader example](../ts-loader), the main difference in the configuration is that we +enable **syntactic diagnostics**: + +```js +new ForkTsCheckerWebpackPlugin({ + typescript: { + diagnosticOptions: { + semantic: true, + syntactic: true, + }, + }, +}) +``` + diff --git a/examples/babel-loader/package.json b/examples/babel-loader/package.json new file mode 100644 index 00000000..c96ccb26 --- /dev/null +++ b/examples/babel-loader/package.json @@ -0,0 +1,21 @@ +{ + "name": "fork-ts-checker-webpack-plugin-babel-loader-example", + "version": "0.0.0", + "main": "dist/index.js", + "license": "MIT", + "scripts": { + "dev": "webpack-dev-server", + "build": "webpack -p" + }, + "devDependencies": { + "@babel/core": "^7.6.0", + "@babel/preset-env": "^7.6.0", + "@babel/preset-typescript": "^7.6.0", + "babel-loader": "^8.0.0", + "fork-ts-checker-webpack-plugin": "^5.0.0-alpha.9", + "typescript": "^3.8.0", + "webpack": "^4.0.0", + "webpack-cli": "^3.0.0", + "webpack-dev-server": "^3.0.0" + } +} diff --git a/examples/babel-loader/src/index.ts b/examples/babel-loader/src/index.ts new file mode 100644 index 00000000..7bc4a71d --- /dev/null +++ b/examples/babel-loader/src/index.ts @@ -0,0 +1 @@ +console.log('Hello world'); diff --git a/examples/babel-loader/tsconfig.json b/examples/babel-loader/tsconfig.json new file mode 100644 index 00000000..c2a0076e --- /dev/null +++ b/examples/babel-loader/tsconfig.json @@ -0,0 +1,18 @@ +{ + "compilerOptions": { + "target": "ES5", + "module": "CommonJS", + "lib": ["ES5", "ScriptHost"], + "moduleResolution": "Node", + "esModuleInterop": true, + "skipLibCheck": true, + "skipDefaultLibCheck": true, + "strict": true, + "baseUrl": "./src", + "outDir": "./dist", + "forceConsistentCasingInFileNames": true, + "importsNotUsedAsValues": "preserve" // this is important for proper files watching + }, + "include": ["./src"], + "exclude": ["node_modules"] +} diff --git a/examples/babel-loader/webpack.config.js b/examples/babel-loader/webpack.config.js new file mode 100644 index 00000000..a330bc30 --- /dev/null +++ b/examples/babel-loader/webpack.config.js @@ -0,0 +1,28 @@ +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); + +module.exports = { + context: __dirname, + entry: './src/index.ts', + resolve: { + extensions: ['.ts', '.tsx', '.js'], + }, + module: { + rules: [ + { + test: /\.tsx?$/, + loader: 'babel-loader', + exclude: /node_modules/, + }, + ], + }, + plugins: [ + new ForkTsCheckerWebpackPlugin({ + typescript: { + diagnosticOptions: { + semantic: true, + syntactic: true, + }, + }, + }), + ], +};