Skip to content

Problematic Source maps #18

Description

@char0n

Description

I've detected problematic usage of source maps from @jsdevtools/ono@7.1.3. Issue is manifesting when using for example Create React App to build the application using @jsdevtools/ono@7.1.3 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/ono@7.1.3 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'),
        },

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

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