-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
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:
esbuild-plugin-css-modules/index.ts
Lines 128 to 132 in 1f97e22
| 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.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels