From 77bee70ccb70efc061f7fa87394e218b0011b458 Mon Sep 17 00:00:00 2001 From: roy Date: Thu, 10 May 2018 17:34:16 +0300 Subject: [PATCH] simpler approach to get output content --- .../webpack-dev-middleware/dev-server.js | 16 ++++--- examples/react/package-lock.json | 45 +++++++++++++++++++ examples/react/package.json | 2 +- 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/atmosphere-packages/webpack-dev-middleware/dev-server.js b/atmosphere-packages/webpack-dev-middleware/dev-server.js index 4cd8dd5..ba2b63b 100644 --- a/atmosphere-packages/webpack-dev-middleware/dev-server.js +++ b/atmosphere-packages/webpack-dev-middleware/dev-server.js @@ -241,12 +241,14 @@ if (Meteor.isServer && Meteor.isDevelopment) { index: false, ...clientConfig.devServer })); - clientConfig.devServer.index = clientConfig.devServer.index || './index.html'; - compiler.hooks.done.tap('meteor-webpack', () => { - const clientCompiler = compiler.compilers.find(compiler => (compiler.name == 'client')); - const indexPath = path.join(clientConfig.devServer.contentBase, clientConfig.devServer.index); - if (clientCompiler.outputFileSystem.existsSync(indexPath)) { - const content = clientCompiler.outputFileSystem.readFileSync(indexPath, 'utf8'); + + compiler.hooks.done.tap('meteor-webpack', ({ stats }) => { + const { assets } = stats[0].compilation + const index = clientConfig.devServer.index || 'index.html' + + if (index in assets) { + const content = assets[index].source() + WebAppInternals.registerBoilerplateDataCallback('meteor/ardatan:webpack', (req, data) => { const head = HEAD_REGEX.exec(content)[1]; data.dynamicHead = data.dynamicHead || ''; @@ -267,4 +269,4 @@ if (Meteor.isServer && Meteor.isDevelopment) { } -} \ No newline at end of file +} diff --git a/examples/react/package-lock.json b/examples/react/package-lock.json index 24a396c..e5cffee 100644 --- a/examples/react/package-lock.json +++ b/examples/react/package-lock.json @@ -7861,6 +7861,45 @@ "strip-ansi": "3.0.1" } }, + "webpack-hot-server-middleware": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/webpack-hot-server-middleware/-/webpack-hot-server-middleware-0.5.0.tgz", + "integrity": "sha512-ykNFgeYQkIYDjwUrzJjqc8W6w9lj8DheKPyBRdemXuDJZCMTfeztixm3eMDx59C7LMNWvHEfsSq2LsKEK5vWBA==", + "dev": true, + "requires": { + "debug": "3.1.0", + "require-from-string": "2.0.2", + "source-map-support": "0.5.5", + "yarn": "1.6.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.5.tgz", + "integrity": "sha512-mR7/Nd5l1z6g99010shcXJiNEaf3fEtmLhRB/sBcQVJGodcHCULPp2y4Sfa43Kv2zq7T+Izmfp/WHCR6dYkQCA==", + "dev": true, + "requires": { + "buffer-from": "1.0.0", + "source-map": "0.6.1" + } + } + } + }, "webpack-log": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-1.2.0.tgz", @@ -7941,6 +7980,12 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true + }, + "yarn": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.6.0.tgz", + "integrity": "sha1-nOxveYbcI3057HBc502VFV/lXUs=", + "dev": true } } } diff --git a/examples/react/package.json b/examples/react/package.json index e6849bf..fac560d 100644 --- a/examples/react/package.json +++ b/examples/react/package.json @@ -28,4 +28,4 @@ "webpack-dev-middleware": "^3.1.3", "webpack-hot-middleware": "^2.22.1" } -} \ No newline at end of file +}