'use strict' const path = require('path') const utils = require('./utils') const config = require('../config') const vueLoaderConfig = require('./vue-loader.conf') function resolve (dir) { return path.join(__dirname, '..', dir) } const createLintingRule = () => ({ }) module.exports = { target: 'web', context: path.resolve(__dirname, '../'), entry: { app: './src/main.js', // sdk: path.join(__dirname, '../src/sdk/NIM_Web_SDK_v5.0.0.js') }, externals:{ 'BMap':'BMap', }, output: { path: config.build.assetsRoot, filename: '[name].js', publicPath: process.env.NODE_ENV === 'production' ? config.build.assetsPublicPath : config.dev.assetsPublicPath }, resolve: { extensions: ['.js', '.vue', '.json'], alias: { 'vue$': 'vue/dist/vue.esm.js', '@': resolve('src'), }, fallback: { timers: require.resolve("timers-browserify"), zlib: require.resolve("browserify-zlib"), "constants": require.resolve("constants-browserify"), "os": require.resolve("os-browserify/browser") } }, module: { rules: [ // ...(config.dev.useEslint ? [createLintingRule()] : []), { test: /\.vue$/, use: ["thread-loader", {loader:'vue-loader', options: vueLoaderConfig}], // loader:'vue-loader', options: vueLoaderConfig }, { test: /\.js$/, use: ["thread-loader",'babel-loader'], exclude: /NIM_Web_SDK_v5.0.0.js/, include: [resolve('src'), resolve('test')] },{ test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, type: "asset", generator: { filename: utils.assetsPath('img/[name].[hash:7].[ext]') }, }, { test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/, type: "asset", generator: { filename: utils.assetsPath('media/[name].[hash:7].[ext]') }, }, { test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/, type: "asset", generator: { filename: utils.assetsPath('fonts/[name].[hash:7].[ext]') }, }, { test: /\.(mp3)(\?.*)?$/, type: "asset", generator: { filename: utils.assetsPath('assets/[name].[hash:7].[ext]') }, } ] }, }