@nx/js:tsc fails to declare proper export on 'index' file in 'additionalEntryPoints'
shlomiassaf opened this issue · 0 comments
shlomiassaf commented
Current Behavior
Declaring barrel
additional export does not declare a barrel
reference in exports:
{
"package": {
"executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/libs/my-lib",
"tsConfig": "libs/my-lib/tsconfig.lib.json",
"main": "libs/my-lib/src/index.ts",
"assets": ["libs/my-lib/*.md"],
"srcRootForCompilationRoot": "libs/my-lib",
"additionalEntryPoints": [
"libs/my-lib/tasks/index.ts"
],
"generateExportsField": true
}
}
}
Yields the following exports, in package.json:
{
"exports": {
"./package.json": "./package.json",
".": "./src/index.js",
"./tasks/index": "./tasks/index.js"
}
}
The additional export was libs/my-lib/tasks/index.ts
and the exported reference was "./tasks/index": "./tasks/index.js"
This will work with import { something } from 'my-lib/tasks/index'
It will not work with import { something } from 'my-lib/tasks'
Expected Behavior
When index
is exported, also export a barrel reference.
{
"exports": {
"./package.json": "./package.json",
".": "./src/index.js",
"./tasks/index": "./tasks/index.js",
"./tasks": "./tasks/index.js"
}
}
Around here:
GitHub Repo
No response
Steps to Reproduce
Nx Report
Node : 18.18.2
OS : darwin-arm64
yarn : 1.22.18
nx (global) : 19.0.2
nx : 19.0.2
@nx/js : 19.0.2
@nx/jest : 19.0.2
@nx/linter : 19.0.2
@nx/eslint : 19.0.2
@nx/workspace : 19.0.2
@nx/devkit : 19.0.2
@nx/eslint-plugin : 19.0.2
@nx/node : 19.0.2
@nx/plugin : 19.0.2
@nx/react : 19.0.2
@nrwl/tao : 19.0.2
@nx/web : 19.0.2
@nx/webpack : 19.0.2
typescript : 5.4.5
---------------------------------------
Local workspace plugins:
@pebula/nx-api-extractor
@pebula/nx-build-pipe
Failure Logs
When running code that use the packaged & published library I get the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './tasks' is not defined by "exports" in /Users/XXXX/project/test/node_modules/my-lib/package.json
at new NodeError (node:internal/errors:405:5)
at exportsNotFound (node:internal/modules/esm/resolve:362:10)
at packageExportsResolve (node:internal/modules/esm/resolve:698:9)
at resolveExports (node:internal/modules/cjs/loader:567:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:636:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1063:27)
at Function.Module._resolveFilename.sharedData.moduleResolveFilenameHook.installedValue (/Users/XXXX/project/test/node_modules/@cspotcode/source-map-support/source-map-support.js:811:30)
at Function.Module._resolveFilename (/Users/XXXX/project/test/node_modules/tsconfig-paths/lib/register.js:75:40)
at Function.Module._load (node:internal/modules/cjs/loader:922:27)
at Module.require (node:internal/modules/cjs/loader:1143:19) {
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}
I assume its related to my setup, maybe the sourcemap pipeline, but this should be exported as a barrel regardless.
Package Manager Version
No response
Operating System
- macOS
- Linux
- Windows
- Other (Please specify)
Additional Information
No response