1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 | module.exports = function(api, ctx) {
|
9 | api.chainWebpack((chain, invoke) => {
|
10 |
|
11 | if (api.prompts.webpack === 'vanilla') {
|
12 | chain.resolve.extensions.add(".ts").add('.tsx')
|
13 | chain.module
|
14 | .rule("typescript")
|
15 | .test(/\.tsx?$/)
|
16 | .use("typescript")
|
17 | .loader("ts-loader")
|
18 | .options({
|
19 | appendTsSuffixTo: [/\.vue$/],
|
20 | onlyCompileBundledFiles: true
|
21 | })
|
22 |
|
23 | } else if (api.prompts.webpack === 'plugin') {
|
24 | const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin')
|
25 | chain.resolve.extensions.add('.ts').add('.tsx')
|
26 | chain.module
|
27 | .rule('typescript')
|
28 | .test(/\.tsx?$/)
|
29 | .use('typescript')
|
30 | .loader('ts-loader')
|
31 | .options({
|
32 | appendTsSuffixTo: [/\.vue$/],
|
33 |
|
34 | transpileOnly: true
|
35 | })
|
36 | chain.plugin('ts-checker').use(ForkTsCheckerWebpackPlugin, [{ vue: true }])
|
37 | }
|
38 | })
|
39 | }
|