52 lines
1.5 KiB
JavaScript
52 lines
1.5 KiB
JavaScript
const path = require('path');
|
|
const common = require('../../../webpack.common');
|
|
const { merge } = require('webpack-merge');
|
|
const { VueLoaderPlugin } = require('vue-loader');
|
|
|
|
|
|
const webpackConfig = merge(common, {
|
|
resolve: {
|
|
alias: {
|
|
'@mixly/python': path.resolve(__dirname, '../python'),
|
|
'@mixly/python-mixpy': path.resolve(__dirname, '../python_mixpy'),
|
|
'vue$': 'vue/dist/vue.esm-bundler.js',
|
|
'@': __dirname
|
|
},
|
|
extensions: ['*', '.ts', '.js', '.vue', '.json'],
|
|
fallback: {
|
|
// for ocaml bundle
|
|
constants: require.resolve('constants-browserify'),
|
|
tty: require.resolve('tty-browserify'),
|
|
vm: require.resolve('vm-browserify'),
|
|
fs: false,
|
|
child_process: false,
|
|
// for sql bundle
|
|
crypto: require.resolve('crypto-browserify'),
|
|
path: require.resolve('path-browserify'),
|
|
buffer: require.resolve('buffer/'),
|
|
stream: require.resolve('stream-browserify'),
|
|
}
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
resourceQuery: /asset-url/,
|
|
type: 'asset/resource',
|
|
},
|
|
{
|
|
test: /\.scss$/,
|
|
use: ['vue-style-loader', 'css-loader', 'sass-loader'],
|
|
},
|
|
]
|
|
},
|
|
plugins: [
|
|
new VueLoaderPlugin()
|
|
]
|
|
});
|
|
|
|
webpackConfig.module.rules.unshift({
|
|
test: /\.vue$/,
|
|
use: ['vue-loader']
|
|
});
|
|
|
|
module.exports = webpackConfig; |