Files
mixly3-server/mixly/boards/default_src/python_pyodide/webpack.common.js

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;