portal.mkgtu.ru/webpack.mix.js

59 lines
1.2 KiB
JavaScript
Raw Normal View History

2024-03-28 09:51:45 +03:00
let mix = require('laravel-mix');
let path = require('path');
let fs = require('fs');
let glob = require('glob');
require('laravel-mix-transpile-node-modules');
require('laravel-mix-polyfill');
let appBasePath = './clientSide/packs'; // where the source files located
let jsEntries = []; // listing to compile
glob.sync(appBasePath + '/**/*.js*').forEach(function (fpath) {
if (fs.existsSync(fpath)) {
jsEntries.push(fpath)
}
})
mix.webpackConfig({
target: ['web', 'es5'],
resolve: {
alias: {
'@clientSide': path.resolve(__dirname, 'clientSide'),
},
modules: ['node_modules'],
},
context: __dirname,
node: {__filename: true}
});
mix
.setPublicPath('frontend/web/webpack')
.setResourceRoot('/webpack/')
.disableNotifications()
for (const jsEntry of jsEntries) {
let rel_path = jsEntry.replace(appBasePath, '')
mix.js(jsEntry, rel_path)
}
/**
* Transpile node_modules in production
*/
if (mix.inProduction()) {
}
mix.vue()
.version()
.sourceMaps(false)
if (mix.inProduction()) {
mix
.transpileNodeModules()
.polyfill({
enabled: true,
useBuiltIns: "entry",
targets: "firefox 46, IE 11"
});
}