diff --git a/CHANGELOG.md b/CHANGELOG.md index e562dd66..830b0ae7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # svelte-loader changelog +## Unreleased + +* Update to latest `svelte-hmr` package fixing Webpack 4 support + ## 3.1.1 * Fix empty sourcesContent ([#177](https://github.com/sveltejs/svelte-loader/pull/177)) diff --git a/index.js b/index.js index 304ef8b2..430ac541 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,6 @@ const { relative } = require('path'); const { getOptions } = require('loader-utils'); -const { makeHot } = require('./lib/make-hot.js'); +const { buildMakeHot } = require('./lib/make-hot.js'); const { compile, preprocess } = require('svelte/compiler'); function posixify(file) { @@ -60,6 +60,7 @@ module.exports = function(source, map) { if (options.hotReload && !isProduction && !isServer) { const hotOptions = { ...options.hotOptions }; + const makeHot = buildMakeHot(hotOptions); const id = JSON.stringify(relative(process.cwd(), compileOptions.filename)); js.code = makeHot(id, js.code, hotOptions, compiled, source, compileOptions); } diff --git a/lib/make-hot.js b/lib/make-hot.js index 531bc2b5..12fe5db5 100644 --- a/lib/make-hot.js +++ b/lib/make-hot.js @@ -3,10 +3,11 @@ const { createMakeHot } = require('svelte-hmr'); const hotApi = require.resolve('./hot-api.js'); -const makeHot = createMakeHot({ +const buildMakeHot = (hotOptions) => createMakeHot({ walk, meta: 'module', hotApi, + hotOptions }); -module.exports.makeHot = makeHot; +module.exports.buildMakeHot = buildMakeHot; diff --git a/package.json b/package.json index 2a0359e4..2331a1c3 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "dependencies": { "loader-utils": "^2.0.0", "svelte-dev-helper": "^1.1.9", - "svelte-hmr": "^0.12.3" + "svelte-hmr": "^0.14.2" }, "devDependencies": { "chai": "^4.2.0", diff --git a/test/loader.spec.js b/test/loader.spec.js index d634606c..6e9d4890 100644 --- a/test/loader.spec.js +++ b/test/loader.spec.js @@ -292,7 +292,7 @@ describe('loader', () => { expect(err).not.to.exist; expect(code).to.contain('module && module.hot'); - expect(code).not.to.contain('"noPreserveState":true'); + expect(code).not.to.contain('"preserveLocalState":true'); }, { hotReload: true } ) @@ -306,12 +306,12 @@ describe('loader', () => { expect(err).not.to.exist; expect(code).to.contain('module && module.hot'); - expect(code).to.contain('"noPreserveState":true'); + expect(code).to.contain('"preserveLocalState":true'); }, { hotReload: true, hotOptions: { - noPreserveState: true + preserveLocalState: true } } )