diff --git a/packages/docusaurus-1.x/.eslintrc.js b/packages/docusaurus-1.x/.eslintrc.js
index 956f11406d..5bbfd2ece8 100644
--- a/packages/docusaurus-1.x/.eslintrc.js
+++ b/packages/docusaurus-1.x/.eslintrc.js
@@ -28,6 +28,7 @@ module.exports = {
'no-plusplus': OFF,
'prefer-template': OFF,
'import/no-extraneous-dependencies': OFF,
+ 'react/jsx-fragments': OFF, // Babylon v6 does not support <> fragments
'react/jsx-closing-bracket-location': OFF, // Formatting is left to Prettier.
'react/jsx-filename-extension': OFF, // Enable in future when migrating.
'react/jsx-one-expression-per-line': OFF, // Formatting is left to Prettier.
diff --git a/packages/docusaurus-1.x/examples/basics/pages/en/users.js b/packages/docusaurus-1.x/examples/basics/pages/en/users.js
index 800e6525f5..5a0136d473 100644
--- a/packages/docusaurus-1.x/examples/basics/pages/en/users.js
+++ b/packages/docusaurus-1.x/examples/basics/pages/en/users.js
@@ -34,14 +34,14 @@ class Users extends React.Component {
{showcase}
{siteConfig.repoUrl && (
- <>
+
Are you using this project?
Add your company
- >
+
)}
diff --git a/packages/docusaurus-1.x/lib/start-server.js b/packages/docusaurus-1.x/lib/start-server.js
index c835a86272..987c90b2a9 100755
--- a/packages/docusaurus-1.x/lib/start-server.js
+++ b/packages/docusaurus-1.x/lib/start-server.js
@@ -49,6 +49,6 @@ program
.parse(process.argv);
startDocusaurus().catch((ex) => {
- console.error(chalk.red(`Failed to start Docusaurus server: ${ex}`));
+ console.error(chalk.red(ex && ex.stack ? ex.stack : ex));
process.exit(1);
});
diff --git a/packages/docusaurus-1.x/lib/write-translations.js b/packages/docusaurus-1.x/lib/write-translations.js
index 0238a0a49d..9de359647e 100755
--- a/packages/docusaurus-1.x/lib/write-translations.js
+++ b/packages/docusaurus-1.x/lib/write-translations.js
@@ -55,6 +55,17 @@ if (fs.existsSync(`${CWD}/data/custom-translation-strings.json`)) {
);
}
+function parseJSXFile(file) {
+ try {
+ return babylon.parse(fs.readFileSync(file, 'utf8'), {
+ plugins: ['jsx'],
+ });
+ } catch (e) {
+ throw new Error(`Babylon parsing failure for file=${file}: ${e.message}
+ \nNote: Docusaurus v1 currently uses Babylon v6, and <> fragment syntax is not supported`);
+ }
+}
+
function writeFileAndCreateFolder(file, content) {
mkdirp.sync(file.replace(new RegExp('/[^/]*$'), ''));
fs.writeFileSync(file, content);
@@ -151,9 +162,7 @@ function execute() {
glob.sync(`${CWD}/pages/en/**`).forEach((file) => {
const extension = nodePath.extname(file);
if (extension === '.js') {
- const ast = babylon.parse(fs.readFileSync(file, 'utf8'), {
- plugins: ['jsx'],
- });
+ const ast = parseJSXFile(file);
traverse(ast, {
enter(path) {
if (