diff --git a/src/rules/no-relative-packages.js b/src/rules/no-relative-packages.js index f56ba8046b..3c9e6f2b6e 100644 --- a/src/rules/no-relative-packages.js +++ b/src/rules/no-relative-packages.js @@ -6,6 +6,12 @@ import moduleVisitor, { makeOptionsSchema } from 'eslint-module-utils/moduleVisi import importType from '../core/importType'; import docsUrl from '../docsUrl'; +/** @type {(filePath: string) => string} */ +const toPosixPath = + path.sep === '\\' + ? (filePath) => filePath.replace(/\\/g, '/') + : (filePath) => filePath; + function findNamedPackage(filePath) { const found = readPkgUp({ cwd: filePath }); if (found.pkg && !found.pkg.name) { @@ -42,7 +48,7 @@ function checkImportForRelativePackage(context, importPath, node) { context.report({ node, message: `Relative import from another package is not allowed. Use \`${properImport}\` instead of \`${importPath}\``, - fix: fixer => fixer.replaceText(node, JSON.stringify(properImport)) + fix: fixer => fixer.replaceText(node, JSON.stringify(toPosixPath(properImport))) , }); } diff --git a/tests/src/rules/no-relative-packages.js b/tests/src/rules/no-relative-packages.js index d3fa754dfd..2d27bcc91e 100644 --- a/tests/src/rules/no-relative-packages.js +++ b/tests/src/rules/no-relative-packages.js @@ -67,7 +67,7 @@ ruleTester.run('no-relative-packages', rule, { line: 1, column: 17, } ], - output: `import foo from "${normalize('@scope/package-named')}"`, + output: `import foo from "@scope/package-named"`, }), test({ code: 'import bar from "../bar"', @@ -77,7 +77,7 @@ ruleTester.run('no-relative-packages', rule, { line: 1, column: 17, } ], - output: `import bar from "${normalize('eslint-plugin-import/tests/files/bar')}"`, + output: `import bar from "eslint-plugin-import/tests/files/bar"`, }), ], });