Skip to content

Commit

Permalink
fix: allow for nested entry-points under src (#519)
Browse files Browse the repository at this point in the history
This change makes it so that we resolve the entry-point relatively to
the src folder, so src/react/index.js becomes react/index.js.

This resolves an issue when the library entry-point is not defined as
src/index.js.

So for example src/react/index.js will fail to build because we only
used the basename (index.js) to construct the build entry-point path, so
the react part of the path disappears from the expected path.

We got build/es/index.js when we should have gotten
build/es/react/index.js.

Since we force users of app-scripts to put their source code under
'src' (compiler/compile.js:15), we can safely assume that the configured
entry-point can be resolved relatively to the src directory and grab
everything to the right and build the path to the target directory, e.g.
build/es/react/index.js.
  • Loading branch information
varl authored Feb 26, 2021
1 parent d4dd803 commit 3ae34b3
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions cli/src/lib/validators/validatePackageExports.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,21 +31,22 @@ module.exports.validatePackageExports = async (
const baseDir = path.dirname(paths.package)

let valid = true
const entrypointBasename = normalizeExtension(
path.basename(config.entryPoints.lib)
const relativeEntrypoint = path.relative(
paths.src,
normalizeExtension(config.entryPoints.lib)
)

const expectedESMExport =
'./' +
path.relative(
baseDir,
path.join(paths.buildOutput, 'es', entrypointBasename)
path.join(paths.buildOutput, 'es', relativeEntrypoint)
)
const expectedCJSExport =
'./' +
path.relative(
baseDir,
path.join(paths.buildOutput, 'cjs', entrypointBasename)
path.join(paths.buildOutput, 'cjs', relativeEntrypoint)
)

const expectedPackage = {
Expand Down

0 comments on commit 3ae34b3

Please sign in to comment.