Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

.cjs extension in main package.json field causes imported CSS file output to be overwritten #883

Copy link
Copy link
@lokimckay

Description

@lokimckay
Issue body actions

Using a .cjs extension in the main field of package.json (e.g. "main": "./dist/foo.cjs") as per README causes microbundle to swallow any .css or .scss files imported

Reproduction steps

Repo: https://github.com/lokimckay-references/microbundle-883

  1. npm init -y
  2. npm install microbundle --save-dev
  3. add styles.css and index.js files
  4. import "./styles.css" within index.js
  5. copy source/exports/main/module/unpkg fields into package.json as per README
    {
      "name": "foo",                     // your package name
      "type": "module",
      "source": "src/foo.js",            // your source code
      "exports": "./dist/foo.modern.js", // where to generate the modern bundle (see below)
      "main": "./dist/foo.cjs",          // where to generate the CommonJS bundle
      "module": "./dist/foo.module.js",  // where to generate the ESM bundle
      "unpkg": "./dist/foo.umd.js",      // where to generate the UMD bundle (also aliased as "umd:main")
      "scripts": {
        "build": "microbundle",          // compiles "source" to "main"/"module"/"unpkg"
        "dev": "microbundle watch"       // re-build when source files change
      }
    }
    
  6. update source field to point to index.js
  7. npm run build

Actual output

  • All compiled formats of index.js
  • Below error message
The emitted file "foo.cjs" overwrites a previously emitted file of the same name.

image

Expected output

  • All compiled formats of index.js
  • styles.css
  • No error message

Workaround

Change the file extension of the main field from ./dist/foo.cjs -> ./dist/foo.js
= achieves expected output

Reactions are currently unavailable

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

      Morty Proxy This is a proxified and sanitized view of the page, visit original site.