From 25dfc2d483bf46be57fa05b74dceab91f79cab0f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 2 Dec 2021 22:48:07 +0100 Subject: [PATCH] add more explicit support for .mjs and .cjs extensions Signed-off-by: Patrik Oldsberg --- .changeset/spicy-parents-fold.md | 13 +++++++++++++ .changeset/strong-doors-destroy.md | 5 +++++ package.json | 2 +- packages/cli/config/jest.js | 8 +++++--- packages/cli/src/commands/lint.ts | 2 +- packages/cli/src/lib/bundler/transforms.ts | 4 ++-- .../templates/default-app/package.json.hbs | 2 +- packages/storybook/.storybook/main.js | 2 +- scripts/list-deprecations.js | 2 +- 9 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 .changeset/spicy-parents-fold.md create mode 100644 .changeset/strong-doors-destroy.md diff --git a/.changeset/spicy-parents-fold.md b/.changeset/spicy-parents-fold.md new file mode 100644 index 0000000000..0fad18f31a --- /dev/null +++ b/.changeset/spicy-parents-fold.md @@ -0,0 +1,13 @@ +--- +'@backstage/create-app': patch +--- + +Updated the root `package.json` to include files with `.cjs` and `.mjs` extensions in the `"lint-staged"` configuration. + +The make this change to an existing app, apply the following changes to the `package.json` file: + +```diff + "lint-staged": { +- "*.{js,jsx,ts,tsx}": [ ++ "*.{js,jsx,ts,tsx,mjs,cjs}": [ +``` diff --git a/.changeset/strong-doors-destroy.md b/.changeset/strong-doors-destroy.md new file mode 100644 index 0000000000..d568ed4e07 --- /dev/null +++ b/.changeset/strong-doors-destroy.md @@ -0,0 +1,5 @@ +--- +'@backstage/cli': patch +--- + +Add support for `.cjs` and `.mjs` extensions in local and dependency modules. diff --git a/package.json b/package.json index 8298508d06..bed17d2b5a 100644 --- a/package.json +++ b/package.json @@ -81,7 +81,7 @@ }, "prettier": "@spotify/prettier-config", "lint-staged": { - "*.{js,jsx,ts,tsx}": [ + "*.{js,jsx,ts,tsx,mjs,cjs}": [ "eslint --fix", "prettier --write" ], diff --git a/packages/cli/config/jest.js b/packages/cli/config/jest.js index 1d33372c60..978c598584 100644 --- a/packages/cli/config/jest.js +++ b/packages/cli/config/jest.js @@ -96,20 +96,22 @@ async function getProjectConfig(targetPath, displayName) { rootDir: path.resolve(targetPath, 'src'), coverageDirectory: path.resolve(targetPath, 'coverage'), coverageProvider: 'v8', - collectCoverageFrom: ['**/*.{js,jsx,ts,tsx}', '!**/*.d.ts'], + collectCoverageFrom: ['**/*.{js,jsx,ts,tsx,mjs,cjs}', '!**/*.d.ts'], moduleNameMapper: { '\\.(css|less|scss|sss|styl)$': require.resolve('jest-css-modules'), }, transform: { - '\\.(js|jsx|ts|tsx)$': require.resolve('./jestSucraseTransform.js'), + '\\.(js|jsx|ts|tsx|mjs|cjs)$': require.resolve( + './jestSucraseTransform.js', + ), '\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg|eot|woff|woff2|ttf)$': require.resolve('./jestFileTransform.js'), '\\.(yaml)$': require.resolve('jest-transform-yaml'), }, // A bit more opinionated - testMatch: ['**/?(*.)test.{js,jsx,mjs,ts,tsx}'], + testMatch: ['**/?(*.)test.{js,jsx,ts,tsx,mjs,cjs}'], transformIgnorePatterns: [`/node_modules/(?:${transformIgnorePattern})/`], }; diff --git a/packages/cli/src/commands/lint.ts b/packages/cli/src/commands/lint.ts index 41b454ffff..5c3e0a88e3 100644 --- a/packages/cli/src/commands/lint.ts +++ b/packages/cli/src/commands/lint.ts @@ -20,7 +20,7 @@ import { paths } from '../lib/paths'; export default async (cmd: Command, cmdArgs: string[]) => { const args = [ - '--ext=js,jsx,ts,tsx', + '--ext=js,jsx,ts,tsx,mjs,cjs', '--max-warnings=0', `--format=${cmd.format}`, ...(cmdArgs ?? [paths.targetDir]), diff --git a/packages/cli/src/lib/bundler/transforms.ts b/packages/cli/src/lib/bundler/transforms.ts index 863728b8f8..d1d26f383d 100644 --- a/packages/cli/src/lib/bundler/transforms.ts +++ b/packages/cli/src/lib/bundler/transforms.ts @@ -61,7 +61,7 @@ export const transforms = (options: TransformOptions): Transforms => { }, }, { - test: /\.(jsx?|mjs)$/, + test: /\.(jsx?|mjs|cjs)$/, exclude: /node_modules/, loader: require.resolve('@sucrase/webpack-loader'), options: { @@ -71,7 +71,7 @@ export const transforms = (options: TransformOptions): Transforms => { }, }, { - test: /\.m?js/, + test: /\.(js|mjs|cjs)/, resolve: { fullySpecified: false, }, diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index bdae71d9e3..92f56bb236 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -38,7 +38,7 @@ }, "prettier": "@spotify/prettier-config", "lint-staged": { - "*.{js,jsx,ts,tsx}": [ + "*.{js,jsx,ts,tsx,mjs,cjs}": [ "eslint --fix", "prettier --write" ], diff --git a/packages/storybook/.storybook/main.js b/packages/storybook/.storybook/main.js index 72ff42311d..f5852b0164 100644 --- a/packages/storybook/.storybook/main.js +++ b/packages/storybook/.storybook/main.js @@ -59,7 +59,7 @@ module.exports = ({ args }) => { }, }, { - test: /\.(jsx?|mjs)$/, + test: /\.(jsx?|mjs|cjs)$/, exclude: /node_modules/, loader: require.resolve('@sucrase/webpack-loader'), options: { diff --git a/scripts/list-deprecations.js b/scripts/list-deprecations.js index 920b01c7b5..9a159927fc 100755 --- a/scripts/list-deprecations.js +++ b/scripts/list-deprecations.js @@ -129,7 +129,7 @@ async function main() { const srcDir = resolvePath(rootPath, packageDir, 'src'); if (await fs.pathExists(srcDir)) { - const files = await globby(['**/*.{js,jsx,ts,tsx}'], { + const files = await globby(['**/*.{js,jsx,ts,tsx,mjs,cjs}'], { cwd: srcDir, }); fileQueue.push(