feat(fleck): ProcessAssets
This commit is contained in:
parent
ccc147ce22
commit
84a30df67a
|
@ -21,9 +21,7 @@
|
|||
},
|
||||
"files": [
|
||||
"cli.js",
|
||||
"cli.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src",
|
||||
"template"
|
||||
],
|
||||
|
|
|
@ -21,7 +21,6 @@
|
|||
},
|
||||
"files": [
|
||||
"cli.js",
|
||||
"cli.js.map",
|
||||
"src",
|
||||
"template"
|
||||
],
|
||||
|
|
|
@ -8,11 +8,7 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"index.js",
|
||||
"index.js.map",
|
||||
"src",
|
||||
"test"
|
||||
"index.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.0"
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,10 +18,7 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,10 +18,7 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src",
|
||||
"website"
|
||||
],
|
||||
"dependencies": {
|
||||
|
|
|
@ -17,11 +17,7 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src",
|
||||
"test"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,14 +18,8 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"server/build/fleck.webpack.config.js",
|
||||
"server/build/fleck.webpack.config.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src",
|
||||
"test.js",
|
||||
"test.js.map"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
const flecksConfigFn = require('@flecks/core/server/build/webpack.config');
|
||||
|
||||
const ProcessAssets = require('./process-assets');
|
||||
|
||||
module.exports = async (env, argv, flecks) => {
|
||||
const config = await flecksConfigFn(env, argv, flecks);
|
||||
config.plugins.push(new ProcessAssets(flecks));
|
||||
config.stats = flecks.get('@flecks/fleck/server.stats');
|
||||
return config;
|
||||
};
|
||||
|
|
28
packages/fleck/src/server/build/process-assets.js
Normal file
28
packages/fleck/src/server/build/process-assets.js
Normal file
|
@ -0,0 +1,28 @@
|
|||
class ProcessAssets {
|
||||
|
||||
constructor(flecks) {
|
||||
this.flecks = flecks;
|
||||
}
|
||||
|
||||
apply(compiler) {
|
||||
compiler.hooks.thisCompilation.tap('@flecks/fleck/server/build/process-assets', (compilation) => {
|
||||
compilation.hooks.processAssets.tapAsync(
|
||||
{
|
||||
name: '@flecks/fleck/server/build/process-assets',
|
||||
stage: compiler.webpack.Compilation.PROCESS_ASSETS_STAGE_REPORT,
|
||||
},
|
||||
async (assets, callback) => {
|
||||
await this.flecks.invokeSequentialAsync(
|
||||
'@flecks/fleck/server.processAssets',
|
||||
assets,
|
||||
compilation,
|
||||
);
|
||||
callback();
|
||||
},
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = ProcessAssets;
|
|
@ -1,5 +1,13 @@
|
|||
import {join} from 'path';
|
||||
|
||||
import {glob} from '@flecks/core/server';
|
||||
|
||||
import commands from './commands';
|
||||
|
||||
const {
|
||||
FLECKS_CORE_ROOT = process.cwd(),
|
||||
} = process.env;
|
||||
|
||||
export const hooks = {
|
||||
'@flecks/core.commands': commands,
|
||||
'@flecks/core.config': () => ({
|
||||
|
@ -12,4 +20,32 @@ export const hooks = {
|
|||
},
|
||||
}),
|
||||
'@flecks/core.targets': () => ['fleck'],
|
||||
'@flecks/fleck/server.processAssets': async (assets, compilation, flecks) => {
|
||||
const {RawSource} = compilation.compiler.webpack.sources;
|
||||
const packageJson = assets['package.json'];
|
||||
const json = JSON.parse(packageJson.source().toString());
|
||||
const {files} = json;
|
||||
// Add defaults.
|
||||
files.push('build', 'src');
|
||||
// Add tests if they exist.
|
||||
const testFiles = await glob(join(FLECKS_CORE_ROOT, 'test/*.js'));
|
||||
if (testFiles.length > 0) {
|
||||
files.push('test', 'test.js');
|
||||
}
|
||||
// Let others have a say.
|
||||
await flecks.invokeSequentialAsync('@flecks/fleck/server.packageJson', json, compilation);
|
||||
// Add any sourcemaps.
|
||||
json.files = json.files
|
||||
.map((filename) => {
|
||||
const maybeWithMap = [filename];
|
||||
if (compilation.assets[`${filename}.map`]) {
|
||||
maybeWithMap.push(`${filename}.map`);
|
||||
}
|
||||
return maybeWithMap;
|
||||
})
|
||||
.flat();
|
||||
// Sort and uniquify.
|
||||
json.files = [...new Set(json.files.sort((l, r) => (l < r ? -1 : 1)))];
|
||||
compilation.updateAsset('package.json', new RawSource(JSON.stringify(json, null, 2)));
|
||||
},
|
||||
};
|
||||
|
|
|
@ -18,12 +18,8 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"client.js",
|
||||
"client.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -19,26 +19,15 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"client.js",
|
||||
"client.js.map",
|
||||
"context.js",
|
||||
"context.js.map",
|
||||
"fake-context.js",
|
||||
"fake-context.js.map",
|
||||
"index.js",
|
||||
"index.js.map",
|
||||
"router/client.js",
|
||||
"router/client.js.map",
|
||||
"router/context.js",
|
||||
"router/context.js.map",
|
||||
"router/index.js",
|
||||
"router/index.js.map",
|
||||
"router/server.js",
|
||||
"router/server.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/preset-react": "^7.23.3",
|
||||
|
|
|
@ -17,12 +17,8 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"session/server.js",
|
||||
"session/server.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,14 +18,9 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"client.js",
|
||||
"client.js.map",
|
||||
"index.js",
|
||||
"index.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -17,10 +17,7 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -19,18 +19,11 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"entry.js",
|
||||
"entry.js.map",
|
||||
"index.js",
|
||||
"index.js.map",
|
||||
"runtime.js",
|
||||
"runtime.js.map",
|
||||
"server/build/server.webpack.config.js",
|
||||
"server/build/server.webpack.config.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,14 +18,9 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"client.js",
|
||||
"client.js.map",
|
||||
"index.js",
|
||||
"index.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"src"
|
||||
"server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,20 +18,12 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"client.js",
|
||||
"client.js.map",
|
||||
"index.js",
|
||||
"index.js.map",
|
||||
"local.js",
|
||||
"local.js.map",
|
||||
"local/server.js",
|
||||
"local/server.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"session/server.js",
|
||||
"session/server.js.map",
|
||||
"src"
|
||||
"session/server.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@flecks/core": "^2.0.3",
|
||||
|
|
|
@ -18,27 +18,15 @@
|
|||
"test": "flecks test"
|
||||
},
|
||||
"files": [
|
||||
"build",
|
||||
"entry.js",
|
||||
"entry.js.map",
|
||||
"runtime.js",
|
||||
"runtime.js.map",
|
||||
"server.js",
|
||||
"server.js.map",
|
||||
"server/build/entry.js",
|
||||
"server/build/entry.js.map",
|
||||
"server/build/postcss.config.js",
|
||||
"server/build/postcss.config.js.map",
|
||||
"server/build/template.ejs",
|
||||
"server/build/tests.js",
|
||||
"server/build/tests.js.map",
|
||||
"server/build/web.webpack.config.js",
|
||||
"server/build/web.webpack.config.js.map",
|
||||
"server/build/web-vendor.webpack.config.js",
|
||||
"server/build/web-vendor.webpack.config.js.map",
|
||||
"src",
|
||||
"tests.js",
|
||||
"tests.js.map"
|
||||
"server/build/web-vendor.webpack.config.js"
|
||||
],
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.17.0",
|
||||
|
|
Loading…
Reference in New Issue
Block a user