diff --git a/src/index.js b/src/index.js index 153261d..9b4e840 100644 --- a/src/index.js +++ b/src/index.js @@ -97,7 +97,11 @@ export default ({ const hotAcceptStatement = t.ifStatement(test, consequent); - firstNonImportDeclarationNode.insertBefore(hotAcceptStatement); + if (firstNonImportDeclarationNode) { + firstNonImportDeclarationNode.insertBefore(hotAcceptStatement); + } else { + programPath.pushContainer('body', hotAcceptStatement); + } }; const getTargetResourcePath = (path: Object, stats:Object) => { diff --git a/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/actual.js b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/actual.js new file mode 100644 index 0000000..e9b384c --- /dev/null +++ b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/actual.js @@ -0,0 +1 @@ +import './bar.css'; diff --git a/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/bar.css b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/bar.css new file mode 100644 index 0000000..5512dae --- /dev/null +++ b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/bar.css @@ -0,0 +1 @@ +.a {} diff --git a/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/expected.js b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/expected.js new file mode 100644 index 0000000..1f95db4 --- /dev/null +++ b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/expected.js @@ -0,0 +1,7 @@ +import './bar.css'; + +if (module.hot) { + module.hot.accept('./bar.css', function () { + require('./bar.css'); + }); +} diff --git a/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/options.json b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/options.json new file mode 100644 index 0000000..a1ca807 --- /dev/null +++ b/test/fixtures/react-css-modules/adds module hot accept for CSS imports when file only contains import statements/options.json @@ -0,0 +1,11 @@ +{ + "plugins": [ + [ + "../../../../src", + { + "generateScopedName": "[name]__[local]", + "webpackHotModuleReloading": true + } + ] + ] +}