Skip to content

Does not work on Windows #3

@TheLonelyAdventurer

Description

@TheLonelyAdventurer

This plugin fails on Windows because of backslashes in paths.

This is my case:

esbuild.build({
  entryPoints: [ './src/index.js' ],
  bundle: true,
  outfile: './dist/bundle.js',
  plugins:
    [ esbuild_sass()
    , esbuild_css_modules(
    { localIdentName: "[local]--[hash:8:md5:hex]"
    , extension: '.module.css'
    }
    )
    ],
  minify: !isDev(),
  minifyIdentifiers: !isDev(),
  minifySyntax: !isDev(),
  minifyWhitespace: !isDev(),
  sourcemap: isDev() ? 'external' : false,
  platform: 'browser'
})

Which currently produces this result:

Error: Build failed with 1 error:
../../../AppData/Local/Temp/tmp-5848-66jQXSM4BQce/nuts/src/index.module.css:2:15: error: Could not resolve "C:Users\rmancAppDataAppDataLocalTemp\tmp-5848-66jQXSM4BQce\nutssrcindex.css" (mark it as external to exclude it from the bundle)
    at failureErrorWithLog (C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:1449:15)
    at C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:1131:28
    at runOnEndCallbacks (C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:921:63)
    at buildResponseToResult (C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:1129:7)
    at C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:1236:14
    at handleIncomingPacket (C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:706:9)
    at Socket.readFromStdout (C:\Users\rmanc\Documents\projs\nuts\node_modules\esbuild\lib\main.js:576:7)
    at Socket.emit (events.js:376:20)
    at addChunk (internal/streams/readable.js:309:12)
error Command failed with exit code 1.

I noticed the path C:Users\rmancAppDataAppDataLocalTemp\tmp-5848-66jQXSM4BQce\nutssrcindex.css and looked at the source:

let contents = `
import "${tmpFilePath}";
const result = ${JSON.stringify(classMap)};
export default result;
`;

The generated code looks like this:

import "C:\Users\rmanc\AppData\AppData\Local\Temp\tmp-5848-66jQXSM4BQce\nuts\src\index.css";
const result = {"test":"test--h0aba64c6"};
export default result;

which obviously doesn't work.

--

I've managed to make it work by wrapping tmpFilePath with https://github.com/sindresorhus/slash.

I'm writing a PR addressing this issue.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions