import * as webpack from 'webpack'; const TS_LOADER = [ { loader: 'cache-loader', options: { cacheDirectory: "node_modules/.cache_loader" } }, { loader: 'ts-loader', options: { transpileOnly: true, experimentalWatchApi: true, }, } ]; const config: webpack.Configuration = { devtool: "source-map", //项目需要解析的文件拓展名称 resolve: { extensions: [".ts", ".tsx", ".js", "json"] }, //模块加载器设置 module: { rules: [ { test: /\.worker\.ts$/, exclude: /node_modules/, use: [ { loader: 'worker-loader', }, ...TS_LOADER ] }, { test: /\.tsx?$/, exclude: /node_modules/, use: TS_LOADER, }, { test: /\.[(png)|(obj)|(json)]$/, loader: "file-loader" }, //样式加载 css { test: /\.css$/, use: ['style-loader', 'css-loader'] }, //样式加载 less { test: /\.less$/, use: [ { loader: "style-loader" }, { loader: 'css-loader', options: { sourceMap: false } }, { loader: "less-loader", options: { lessOptions: { strictMath: true, noIeCompat: true } } } ] }, //字体加载 blueprint { test: /\.(ttf|eot|svg|FBX)$/, use: { loader: 'file-loader', options: { name: 'fonts/[contenthash].[ext]' } } }, //字体加载 blueprint { test: /\.(woff|woff2|jpg|png)$/, use: { loader: 'url-loader', options: { name: 'fonts/[contenthash].[ext]', limit: 5000, mimetype: 'application/font-woff' } } }, { test: /\.(glsl|vs|fs)$/, loader: 'shader-loader' } ] }, plugins: [ ] }; export default config;