workaround weird webpack(?) bug by not deleting old files

This commit is contained in:
Rich Harris
2018-02-18 12:49:37 -05:00
parent 25bdcf9957
commit 835b94175d
4 changed files with 9 additions and 15 deletions

View File

@@ -154,10 +154,9 @@ export default async function dev(src: string, dir: string) {
deferreds.client = deferred();
// TODO print message
fs.readdirSync(path.join(dir, 'client')).forEach(file => {
fs.unlinkSync(path.join(dir, 'client', file));
});
// TODO we should delete old assets. due to a webpack bug
// i don't even begin to comprehend, this is apparently
// quite difficult
});
compilers.client.watch({}, (err: Error, stats: any) => {
@@ -196,7 +195,7 @@ export default async function dev(src: string, dir: string) {
times.serviceworker_start = Date.now();
});
compilers.client.watch({}, (err: Error, stats: any) => {
compilers.serviceworker.watch({}, (err: Error, stats: any) => {
if (err) {
// TODO notify client
} else if (stats.hasErrors()) {
@@ -209,7 +208,6 @@ export default async function dev(src: string, dir: string) {
const serviceworker_info = stats.toJson();
fs.writeFileSync(path.join(dir, 'serviceworker_info.json'), JSON.stringify(serviceworker_info, null, ' '));
// TODO trigger reload?
}
});
}

View File

@@ -1,5 +1,7 @@
let source;
console.log('!!!! hmr client');
function check() {
if (module.hot.status() === 'idle') {
module.hot.check(true).then(modules => {

View File

@@ -12,12 +12,6 @@ import { Route, Template } from '../interfaces';
const dev = isDev();
type Assets = {
index: string;
service_worker: string;
client: Record<string, string>;
}
type RouteObject = {
id: string;
type: 'page' | 'route';

View File

@@ -18,8 +18,8 @@ export default {
output: () => {
return {
path: `${dest}/client`,
filename: '[name].[hash].js',
chunkFilename: '[name].[id].[hash].js',
filename: '[hash]/[name].js',
chunkFilename: '[hash]/[name].[id].js',
publicPath: '/client/'
};
}
@@ -36,7 +36,7 @@ export default {
return {
path: `${dest}`,
filename: '[name].js',
chunkFilename: '[name].[id].[hash].js',
chunkFilename: '[hash]/[name].[id].js',
libraryTarget: 'commonjs2'
};
}