Files
mixtape/zero.Web.UI/vite.config.js
T

77 lines
1.9 KiB
JavaScript
Raw Normal View History

2020-11-01 22:20:29 +01:00
const path = require('path');
2020-11-01 23:56:22 +01:00
const fs = require('fs');
2020-11-01 22:20:29 +01:00
const { createVuePlugin } = require('vite-plugin-vue2');
2020-12-30 13:21:35 +01:00
let loadedPlugins = JSON.parse(process.env.ZERO_PLUGINS || "[]"); //["../zero.Commerce/Plugin", "../../Laola/Laola.Backoffice/Plugin"];
2020-11-01 22:20:29 +01:00
let zeroPlugins = [];
2020-11-01 23:56:22 +01:00
let pluginFileContent = '';
let pluginAliases = {};
let pluginNames = [];
let idx = 0;
2020-12-02 22:25:20 +01:00
loadedPlugins.forEach(pluginPath =>
2020-11-01 23:56:22 +01:00
{
2020-12-02 22:25:20 +01:00
const viteConfigPath = pluginPath + "/vite.plugin.js";
const pluginConfig = require(viteConfigPath);
2020-11-01 23:56:22 +01:00
zeroPlugins.push(pluginConfig());
const name = 'zeroPlugin' + idx;
const alias = '/@zeroplugin' + (idx++) + '/';
2020-12-02 22:25:20 +01:00
pluginAliases[alias] = path.resolve(__dirname, pluginPath);
2020-11-01 23:56:22 +01:00
pluginNames.push(name);
pluginFileContent += "import " + name + " from '" + alias + "plugin.js';\n";
});
pluginFileContent += "export default [ " + pluginNames.join(', ') + " ];";
fs.writeFile(path.resolve(__dirname, 'app/core/plugins.js'), pluginFileContent, err =>
{
if (err)
{
console.error(err)
return
}
//file written successfully
})
2020-11-01 22:20:29 +01:00
const aliasResolver = {
alias(id)
{
2020-11-01 23:56:22 +01:00
if (id.indexOf('zero/') === 0)
2020-11-01 22:20:29 +01:00
{
return '/@' + id;
}
}
//requestToFile(publicPath, root)
//{
// if (publicPath.indexOf('/@zero/') === 0)
// {
// return path.join(root, publicPath.replace('/@zero/', ''));
// }
// if (publicPath.indexOf('/@shop/') === 0)
// {
// return path.join(root, publicPath.replace('/@shop/', '../zero.Commerce/Plugins/zero.Commerce/'));
// }
//}
};
2020-12-30 13:21:35 +01:00
const config = {
2020-11-01 22:20:29 +01:00
port: process.env.PORT,
cors: true,
emitManifest: true,
plugins: [createVuePlugin(), ...zeroPlugins],
alias: {
2020-11-01 23:56:22 +01:00
'/@zero/': path.resolve(__dirname, 'app/'),
...pluginAliases
2020-11-01 22:20:29 +01:00
},
2020-12-30 13:21:35 +01:00
resolvers: [aliasResolver],
rollupOutputOptions: {
format: 'cjs',
entryFileNames: `[name].js`,
chunkFileNames: `[name].js`,
assetFileNames: `[name].[ext]`
},
};
export default config;