diff --git a/.changeset/gold-scissors-shake.md b/.changeset/gold-scissors-shake.md new file mode 100644 index 00000000..3cb62724 --- /dev/null +++ b/.changeset/gold-scissors-shake.md @@ -0,0 +1,5 @@ +--- +"10up-toolkit": major +--- + +Remove browser-sync support diff --git a/packages/toolkit/config/__tests__/__snapshots__/webpack-basic-config.js.snap b/packages/toolkit/config/__tests__/__snapshots__/webpack-basic-config.js.snap index b67ef4e4..32204480 100644 --- a/packages/toolkit/config/__tests__/__snapshots__/webpack-basic-config.js.snap +++ b/packages/toolkit/config/__tests__/__snapshots__/webpack-basic-config.js.snap @@ -1596,7 +1596,6 @@ Object { ESLintWebpackPlugin: {"extensions":"js","emitError":true,"emitWarning":true,"failOnError":false,"resourceQueryExclude":[],"fix":false,"lintDirtyModulesOnly":true}, MiniCssExtractPlugin: {"ignoreOrder":false,"runtime":true,"chunkFilename":"[id].css"}, CopyPlugin: {}, - NoBrowserSyncPlugin: {}, StylelintWebpackPlugin: {"cache":true,"cacheLocation":"node_modules/.cache/stylelint-webpack-plugin/.stylelintcache","extensions":["css","scss","sass"],"emitError":true,"emitWarning":true,"failOnError":false,"context":"/assets2","files":"**/*.(s(c|a)ss|css)","allowEmptyInput":true,"lintDirtyModulesOnly":true,"configFile":"/config/stylelint.config.js"}, WebpackBarPlugin: {"name":"webpack","color":"green","reporters":["basic"],"reporter":null}, DependencyExtractionWebpackPlugin: {"combineAssets":false,"combinedOutputFile":null,"externalizedReport":false,"injectPolyfill":false,"outputFormat":"php","outputFilename":null,"useDefaults":true}, diff --git a/packages/toolkit/config/__tests__/__snapshots__/webpack-cli-arguments.js.snap b/packages/toolkit/config/__tests__/__snapshots__/webpack-cli-arguments.js.snap index a2ec8b2d..bb79ebd8 100644 --- a/packages/toolkit/config/__tests__/__snapshots__/webpack-cli-arguments.js.snap +++ b/packages/toolkit/config/__tests__/__snapshots__/webpack-cli-arguments.js.snap @@ -483,7 +483,6 @@ Object { ESLintWebpackPlugin: {"extensions":"js","emitError":true,"emitWarning":true,"failOnError":false,"resourceQueryExclude":[],"fix":false,"lintDirtyModulesOnly":true}, MiniCssExtractPlugin: {"ignoreOrder":false,"runtime":true,"chunkFilename":"[id].css"}, CopyPlugin: {}, - NoBrowserSyncPlugin: {}, StylelintWebpackPlugin: {"cache":true,"cacheLocation":"node_modules/.cache/stylelint-webpack-plugin/.stylelintcache","extensions":["css","scss","sass"],"emitError":true,"emitWarning":true,"failOnError":false,"context":"/assets","files":"**/*.(s(c|a)ss|css)","allowEmptyInput":true,"lintDirtyModulesOnly":true}, WebpackBarPlugin: {"name":"webpack","color":"green","reporters":["basic"],"reporter":null}, DependencyExtractionWebpackPlugin: {"combineAssets":false,"combinedOutputFile":null,"externalizedReport":false,"injectPolyfill":false,"outputFormat":"php","outputFilename":null,"useDefaults":true}, diff --git a/packages/toolkit/config/webpack/plugins.js b/packages/toolkit/config/webpack/plugins.js index 3567ac11..b07872c6 100644 --- a/packages/toolkit/config/webpack/plugins.js +++ b/packages/toolkit/config/webpack/plugins.js @@ -12,16 +12,13 @@ const { resolve } = require('path'); const RemoveEmptyScriptsPlugin = require('./plugins/remove-empty-scripts'); const CleanExtractedDeps = require('./plugins/clean-extracted-deps'); const TenUpToolkitTscPlugin = require('./plugins/tsc'); -const NoBrowserSyncPlugin = require('./plugins/no-browser-sync'); const { hasStylelintConfig, fromConfigRoot, hasProjectFile, - getArgFromCLI, maybeInsertStyleVersionHash, } = require('../../utils'); -const { isPackageInstalled } = require('../../utils/package'); const removeDistFolder = (file) => { return file.replace(/(^\.\/dist\/)|^dist\//, ''); @@ -38,7 +35,6 @@ module.exports = ({ projectConfig: { devServer, filenames, - devURL, devServerPort, paths, wpDependencyExternals, @@ -51,38 +47,6 @@ module.exports = ({ }) => { const hasReactFastRefresh = hot && !isProduction; - const hasBrowserSync = - isPackageInstalled('browser-sync-webpack-plugin') && isPackageInstalled('browser-sync'); - - const shouldLoadBrowserSync = !isProduction && devURL && !hasReactFastRefresh && hasBrowserSync; - - let browserSync = !isProduction && devURL ? new NoBrowserSyncPlugin() : false; - if (shouldLoadBrowserSync) { - // eslint-disable-next-line global-require, import/no-extraneous-dependencies - const BrowserSyncPlugin = require('browser-sync-webpack-plugin'); - browserSync = new BrowserSyncPlugin( - { - host: 'localhost', - port: getArgFromCLI('--port') || 3000, - proxy: devURL, - open: false, - files: ['**/*.php', '**/*.js', 'dist/**/*.css'], - ignore: ['dist/**/*.php', 'dist/**/*.js'], - serveStatic: ['.'], - rewriteRules: [ - { - match: /wp-content\/themes\/.*\/dist/g, - replace: 'dist', - }, - ], - }, - { - injectCss: true, - reload: false, - }, - ); - } - const blocksSourceDirectory = resolve(process.cwd(), paths.blocksDir); return [ @@ -180,7 +144,6 @@ module.exports = ({ }, ].filter(Boolean), }), - devURL && browserSync, // Lint CSS. new StyleLintPlugin({ context: path.resolve(process.cwd(), paths.srcDir), diff --git a/packages/toolkit/config/webpack/plugins/no-browser-sync.js b/packages/toolkit/config/webpack/plugins/no-browser-sync.js deleted file mode 100644 index 37b7d06b..00000000 --- a/packages/toolkit/config/webpack/plugins/no-browser-sync.js +++ /dev/null @@ -1,27 +0,0 @@ -class NoBrowserSyncPlugin { - constructor() { - this.displayed = false; - } - - // Define `apply` as its prototype method which is supplied with compiler as its argument - apply(compiler) { - compiler.hooks.compilation.tap('NoBrowserSyncPlugin', (compilation) => { - if (!this.displayed) { - this.displayed = true; - const logger = compilation.getLogger('10upToolkitBrowserSyncDeprecationNotice'); - logger.warn( - 'BrowserSync suppport has been deprecated in 10up-toolkit in favor of the `--hot` option and will be completely removed in the next major release!', - ); - logger.warn( - 'If you still wish to use BrowserSync you must manually install the `browser-sync` and `browser-sync-webpack-plugin` packages.', - ); - logger.warn( - 'If those packages are installed 10up-toolkit will start browser-sync automatically!', - ); - logger.warn('See https://github.com/10up/10up-toolkit/issues/158 for more info'); - } - }); - } -} - -module.exports = NoBrowserSyncPlugin;