mirror of
https://github.com/HeyPuter/puter.git
synced 2025-02-02 23:28:39 +08:00
fix: fix sourcemap
This commit is contained in:
parent
d07929da1b
commit
cd39bb5aa0
@ -1,8 +1,8 @@
|
|||||||
const BaseConfig = require('./webpack/BaseConfig.cjs');
|
const BaseConfig = require('./webpack/BaseConfig.cjs');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = async () => ({
|
||||||
...BaseConfig({ env: 'dev' }),
|
...(await BaseConfig({ env: 'dev' })),
|
||||||
optimization: {
|
optimization: {
|
||||||
minimize: false
|
minimize: false
|
||||||
},
|
},
|
||||||
};
|
});
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const EmitPlugin = require('./EmitPlugin.cjs');
|
const EmitPlugin = require('./EmitPlugin.cjs');
|
||||||
module.exports = (options = {}) => {
|
module.exports = async (options = {}) => {
|
||||||
const config = {};
|
const config = {};
|
||||||
config.entry = [
|
config.entry = [
|
||||||
'./src/init_sync.js',
|
'./src/init_sync.js',
|
||||||
@ -18,7 +18,7 @@ module.exports = (options = {}) => {
|
|||||||
filename: 'bundle.min.js',
|
filename: 'bundle.min.js',
|
||||||
};
|
};
|
||||||
config.plugins = [
|
config.plugins = [
|
||||||
EmitPlugin({
|
await EmitPlugin({
|
||||||
options,
|
options,
|
||||||
dir: path.join(__dirname, '../src/icons'),
|
dir: path.join(__dirname, '../src/icons'),
|
||||||
}),
|
}),
|
||||||
|
@ -1,78 +1,80 @@
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const uglifyjs = require('uglify-js');
|
const uglifyjs = require('uglify-js');
|
||||||
|
const webpack = require('webpack');
|
||||||
|
|
||||||
module.exports = ({ dir, options }) => function () {
|
module.exports = async ({ dir, options }) => {
|
||||||
const compiler = this;
|
let prefix_text = '';
|
||||||
compiler.hooks.emit.tapAsync('EmitPlugin', async (compilation, callback) => {
|
prefix_text += `window.gui_env="${options.env}";\n`;
|
||||||
let prefix_text = '';
|
|
||||||
prefix_text += `window.gui_env="${options.env}";\n`;
|
|
||||||
|
|
||||||
// -----------------------------------------------
|
// -----------------------------------------------
|
||||||
// Combine all images into a single js file
|
// Combine all images into a single js file
|
||||||
// -----------------------------------------------
|
// -----------------------------------------------
|
||||||
{
|
{
|
||||||
let icons = 'window.icons = [];\n';
|
let icons = 'window.icons = [];\n';
|
||||||
fs.readdirSync(dir).forEach(file => {
|
fs.readdirSync(dir).forEach(file => {
|
||||||
// skip dotfiles
|
// skip dotfiles
|
||||||
if (file.startsWith('.'))
|
if (file.startsWith('.'))
|
||||||
return;
|
return;
|
||||||
// load image
|
// load image
|
||||||
let buff = new Buffer.from(fs.readFileSync(dir + '/' + file));
|
let buff = new Buffer.from(fs.readFileSync(dir + '/' + file));
|
||||||
// convert to base64
|
// convert to base64
|
||||||
let base64data = buff.toString('base64');
|
let base64data = buff.toString('base64');
|
||||||
// add to `window.icons`
|
// add to `window.icons`
|
||||||
if (file.endsWith('.png'))
|
if (file.endsWith('.png'))
|
||||||
icons += `window.icons['${file}'] = "data:image/png;base64,${base64data}";\n`;
|
icons += `window.icons['${file}'] = "data:image/png;base64,${base64data}";\n`;
|
||||||
else if (file.endsWith('.svg'))
|
else if (file.endsWith('.svg'))
|
||||||
icons += `window.icons['${file}'] = "data:image/svg+xml;base64,${base64data}";\n`;
|
icons += `window.icons['${file}'] = "data:image/svg+xml;base64,${base64data}";\n`;
|
||||||
});
|
|
||||||
prefix_text += icons + '\n';
|
|
||||||
}
|
|
||||||
|
|
||||||
// -----------------------------------------------
|
|
||||||
// Concat/merge the JS libraries and save them to ./dist/libs.js
|
|
||||||
// -----------------------------------------------
|
|
||||||
{
|
|
||||||
const lib_paths = require('./libPaths.cjs');
|
|
||||||
let js = '';
|
|
||||||
for(let i = 0; i < lib_paths.length; i++){
|
|
||||||
const file = path.join(__dirname, '../src/lib/', lib_paths[i]);
|
|
||||||
// js
|
|
||||||
if(file.endsWith('.js') && !file.endsWith('.min.js')){
|
|
||||||
let minified_code = await uglifyjs.minify(fs.readFileSync(file).toString(), {mangle: false});
|
|
||||||
if(minified_code && minified_code.code){
|
|
||||||
js += minified_code.code;
|
|
||||||
if(options?.verbose)
|
|
||||||
console.log('minified: ', file);
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
js += fs.readFileSync(file);
|
|
||||||
if(options?.verbose)
|
|
||||||
console.log('skipped minification: ', file);
|
|
||||||
}
|
|
||||||
|
|
||||||
js += '\n\n\n';
|
|
||||||
}
|
|
||||||
prefix_text += js;
|
|
||||||
}
|
|
||||||
|
|
||||||
// -----------------------------------------------
|
|
||||||
// Webpack understands this code better than I do
|
|
||||||
// -----------------------------------------------
|
|
||||||
Object.keys(compilation.assets).forEach((assetName) => {
|
|
||||||
if (assetName.endsWith('.js')) {
|
|
||||||
const asset = compilation.assets[assetName];
|
|
||||||
const originalSource = asset.source();
|
|
||||||
const newSource = `${prefix_text}\n${originalSource}`;
|
|
||||||
compilation.assets[assetName] = {
|
|
||||||
source: () => newSource,
|
|
||||||
size: () => newSource.length,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
prefix_text += icons + '\n';
|
||||||
|
}
|
||||||
|
|
||||||
console.log('END');
|
// -----------------------------------------------
|
||||||
callback();
|
// Concat/merge the JS libraries and save them to ./dist/libs.js
|
||||||
|
// -----------------------------------------------
|
||||||
|
{
|
||||||
|
const lib_paths = require('./libPaths.cjs');
|
||||||
|
let js = '';
|
||||||
|
for(let i = 0; i < lib_paths.length; i++){
|
||||||
|
const file = path.join(__dirname, '../src/lib/', lib_paths[i]);
|
||||||
|
// js
|
||||||
|
if(file.endsWith('.js') && !file.endsWith('.min.js')){
|
||||||
|
let minified_code = await uglifyjs.minify(fs.readFileSync(file).toString(), {mangle: false});
|
||||||
|
if(minified_code && minified_code.code){
|
||||||
|
js += minified_code.code;
|
||||||
|
if(options?.verbose)
|
||||||
|
console.log('minified: ', file);
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
js += fs.readFileSync(file);
|
||||||
|
if(options?.verbose)
|
||||||
|
console.log('skipped minification: ', file);
|
||||||
|
}
|
||||||
|
|
||||||
|
js += '\n\n\n';
|
||||||
|
}
|
||||||
|
prefix_text += js;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new webpack.BannerPlugin({
|
||||||
|
banner: prefix_text,
|
||||||
|
raw: true,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// -----------------------------------------------
|
||||||
|
// Webpack understands this code better than I do
|
||||||
|
// -----------------------------------------------
|
||||||
|
// Object.keys(compilation.assets).forEach((assetName) => {
|
||||||
|
// if (assetName.endsWith('.js')) {
|
||||||
|
// const asset = compilation.assets[assetName];
|
||||||
|
// const originalSource = asset.source();
|
||||||
|
// const newSource = `${prefix_text}\n${originalSource}`;
|
||||||
|
// compilation.assets[assetName] = {
|
||||||
|
// source: () => newSource,
|
||||||
|
// size: () => newSource.length,
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
|
||||||
|
console.log('END');
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user