Convert Windows backslash paths to slash paths
npx @tessl/cli install tessl/npm-slash@5.1.0Slash is a lightweight utility function that converts Windows backslash paths to forward slash paths, enabling cross-platform path compatibility in Node.js applications. It handles the inconsistency where Node.js path methods output backslash paths on Windows, but forward slashes can be used universally across platforms.
npm install slashimport slash from 'slash';For CommonJS:
const slash = require('slash');import path from 'node:path';
import slash from 'slash';
const windowsPath = path.join('foo', 'bar');
// On Unix => foo/bar
// On Windows => foo\\bar
const unifiedPath = slash(windowsPath);
// On Unix => foo/bar
// On Windows => foo/bar (converted from foo\\bar)
console.log(unifiedPath); // Always outputs: foo/barConverts Windows backslash paths to forward slash paths while preserving extended-length paths.
/**
* Convert Windows backslash paths to slash paths: `foo\\bar` ➔ `foo/bar`.
* Forward-slash paths can be used in Windows as long as they're not extended-length paths.
*
* @param path - A Windows backslash path.
* @returns A path with forward slashes.
*/
function slash(path: string): string;Parameters:
path (string): A Windows backslash path to convertReturns:
string: A path with forward slashesBehavior:
\) to forward slashes (/) in the provided path\\?\ unchanged (Windows-specific extended path format)c:/aaaa\\bbbb becomes c:/aaaa/bbbb)Usage Examples:
import slash from 'slash';
// Basic conversion
slash('c:\\aaaa\\bbbb');
// Returns: 'c:/aaaa/bbbb'
// Mixed separators
slash('c:/aaaa\\bbbb');
// Returns: 'c:/aaaa/bbbb'
// Unicode characters
slash('c:\\aaaa\\bbbb\\★');
// Returns: 'c:/aaaa/bbbb/★'
// Extended-length paths (Windows) - preserved unchanged
slash('\\\\?\\c:\\aaaa\\bbbb');
// Returns: '\\\\?\\c:\\aaaa\\bbbb' (unchanged)
// Already forward slashes - no change needed
slash('c:/aaaa/bbbb');
// Returns: 'c:/aaaa/bbbb'Common Use Cases:
import path from 'node:path';
import slash from 'slash';
// Consistent paths for build tools
const srcPath = slash(path.join('src', 'components', 'Button.js'));
// Always: 'src/components/Button.js'
// Cross-platform file processing
import fs from 'node:fs';
const files = fs.readdirSync('.')
.map(file => slash(path.resolve(file)))
.filter(file => file.endsWith('.js'));
// URL-safe paths for web applications
const webPath = slash(path.relative(process.cwd(), filePath));
// Safe to use in URLs and web contexts