You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.5 KiB
72 lines
2.5 KiB
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const CopyPlugin = require('copy-webpack-plugin');
|
|
|
|
module.exports = {
|
|
entry: {
|
|
main: './src/js/index.js',
|
|
frame: './src/js/frame.js'
|
|
},
|
|
output: {
|
|
filename: '[name].bundle.js',
|
|
path: path.resolve(__dirname, 'dist'),
|
|
library: {
|
|
root: 'H5PStandalone',
|
|
amd: 'h5p-standalone',
|
|
commonjs: 'h5p-standalone'
|
|
},
|
|
libraryExport: "default",
|
|
libraryTarget: 'umd'
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
h5pjquery: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'jquery')),
|
|
H5P: path.resolve(__dirname, 'vendor/h5p/js', 'h5p'),
|
|
H5PIntegration: require.resolve(path.resolve(__dirname, 'src/js', 'h5p-integration')),
|
|
H5PEventDispatcher: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p-event-dispatcher')),
|
|
H5PxAPI: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p-x-api')),
|
|
H5PxAPIEvent: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p-x-api-event')),
|
|
H5PContentType: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p-content-type')),
|
|
H5PActionBar: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p-action-bar')),
|
|
H5PRequestQueue: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'request-queue')),
|
|
H5PConfirmationDialog: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p-confirmation-dialog')),
|
|
'h5p-standalone': require.resolve(path.resolve(__dirname, 'src/js', 'index'))
|
|
}
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p')),
|
|
use: ['exports-loader?H5P', 'imports-loader?jQuery=h5pjquery'],
|
|
},
|
|
{
|
|
test: /src\/.*\.js$/,
|
|
exclude: /(node_modules|bower_components)/,
|
|
use: {
|
|
loader: 'babel-loader',
|
|
options: {
|
|
presets: ['@babel/preset-env'],
|
|
plugins: [
|
|
["@babel/plugin-transform-runtime",
|
|
{
|
|
"regenerator": true
|
|
}
|
|
]
|
|
]
|
|
}
|
|
}
|
|
},
|
|
]
|
|
},
|
|
plugins: [
|
|
new webpack.ProvidePlugin({
|
|
'$': 'jquery',
|
|
// 'H5PIntegration': [require.resolve(path.resolve(__dirname, 'src/js', 'h5p-integration')), 'default'],
|
|
// 'H5P': require.resolve(path.resolve(__dirname, 'vendor/h5p/js', 'h5p'))
|
|
}),
|
|
new CopyPlugin([
|
|
{ from: 'vendor/h5p/styles', to: 'styles' },
|
|
{ from: 'vendor/h5p/fonts', to: 'fonts' },
|
|
]),
|
|
]
|
|
}; |