Skip to content

Problematic Source maps #18

Open
Open
@char0n

Description

Description

I've detected problematic usage of source maps from @jsdevtools/[email protected]. Issue is manifesting when using for example Create React App to build the application using @jsdevtools/[email protected] as an npm package. I've inspected the source maps and according to my understanding the problem is that the source maps are missing sourcesContent field. This field should only be omitted if the tool using the source map can retrieve the sources via url or from the filesystem. Obviously this is not the case as the original source code under (src/ directory) is not part of npm distribution.

Expected result

No warning when bundling the @jsdevtools/ono using Create React App.

Actual result

Warnings like these are being emitted by the webpack@5:

Failed to parse source map from '/home/char0n/Documents/GitHub/test/node_modules/@jsdevtools/ono/src/constructor.ts' file: Error: ENOENT: no such file or directory, open '/home/char0n/Documents/GitHub/test/node_modules/@jsdevtools/ono/src/constructor.ts'

Failed to parse source map from '/home/char0n/Documents/GitHub/test/node_modules/@jsdevtools/ono/src/extend-error.ts' file: Error: ENOENT: no such file or directory, open '/home/char0n/Documents/GitHub/test/node_modules/@jsdevtools/ono/src/extend-error.ts'

Failed to parse source map from '/home/char0n/Documents/GitHub/test/node_modules/@jsdevtools/ono/src/index.ts' file: Error: ENOENT: no such file or directory, open '/home/char0n/Documents/GitHub/test/node_modules/@jsdevtools/ono/src/index.ts'

Steps to reproduce

I can create a repo demonstrating CRA@5 + @jsdevtools/[email protected] as StR POC.

Troubleshooting

CRA can be ejected, webpack.config.js edited and libraries can be excluded from source map processing:

      strictExportPresence: true,
      rules: [
        // Handle node_modules packages that contain sourcemaps
        shouldUseSourceMap && {
          enforce: 'pre',
          exclude: [
            /@babel(?:\/|\\{1,2})runtime/,
            /@jsdevtools\/ono/,
          ],
          test: /\.(js|mjs|jsx|ts|tsx|css)$/,
          loader: require.resolve('source-map-loader'),
        },

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions