Skip to content

Commit 7b95a1d

Browse files
committed
fix(stimulus): don't require an optional dependency if it's not used
1 parent cd00778 commit 7b95a1d

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

lib/features.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,14 @@ const features = {
147147
{ name: 'handlebars-loader', enforce_version: true }
148148
],
149149
description: 'load Handlebars files'
150+
},
151+
stimulus: {
152+
method: 'enableStimulusBridge()',
153+
packages: [
154+
{ name: '@symfony/stimulus-bridge' },
155+
{ name: 'stimulus' }
156+
],
157+
description: 'enable Stimulus bridge'
150158
}
151159
};
152160

lib/plugins/stimulus-bridge.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
'use strict';
1111

1212
const WebpackConfig = require('../WebpackConfig'); //eslint-disable-line no-unused-vars
13-
const createPlugin = require('@symfony/stimulus-bridge/webpack-helper');
13+
const loaderFeatures = require('../features');
1414
const fs = require('fs');
1515

1616
/**
@@ -20,6 +20,10 @@ const fs = require('fs');
2020
*/
2121
module.exports = function(plugins, webpackConfig) {
2222
if (webpackConfig.useStimulusBridge) {
23+
loaderFeatures.ensurePackagesExistAndAreCorrectVersion('stimulus');
24+
25+
const createPlugin = require('@symfony/stimulus-bridge/webpack-helper');
26+
2327
plugins.push({
2428
plugin: createPlugin(JSON.parse(fs.readFileSync(webpackConfig.stimulusOptions.controllersJsonPath))),
2529
});

0 commit comments

Comments
 (0)