plugins: Unable to build TypeScript bundle when outDir is specified in tsconfig.json
- Rollup Plugin Name: @rollup/plugin-typescript
- Rollup Plugin Version: v4.0.0
- Rollup Version: v1.32.0
- Operating System (or Browser): Windows 10
- Node Version: v12
How Do We Reproduce?
https://repl.it/repls/EnchantingHatefulFunctions
Expected Behavior
Module builds correctly
Actual Behavior
Error: Unexpected token (Note that you need plugins to import files that are not JavaScript)
It looks like this is because the paths stored in emittedFileNames don’t match the paths in emittedFiles.
{
emittedFileNames: [
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/src/index.fx.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/src/index.fx.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/src/index.fx.d.ts'
],
emittedFiles: [Map Iterator] {
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/utils.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/utils.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/utils.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/errors.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/errors.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/errors.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/types.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/types.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/types.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/http.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/http.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/http.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/endpoint.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/endpoint.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/endpoint.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/requests.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/requests.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/requests.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/batch.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/batch.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/batch.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/collection.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/collection.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/collection.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/bucket.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/bucket.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/bucket.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/base.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/base.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/base.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.browser.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.browser.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.browser.d.ts',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.fx.js.map',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.fx.js',
'C:/Users/Dylan/Documents/git/kinto/kinto-http.js/lib/index.fx.d.ts'
}
}
This only happens when tsconfig.json has a outDir property, and removing it results in the bundle being correctly generated. This didn’t occur on v3.0.0, so I assume it’s related to switching to the BuilderProgram API.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Reactions: 28
- Comments: 24 (2 by maintainers)
Faced the same issue, and fixed it as suggested by @NotWoods. However it seems that the “chunkFileNames” option is ignored when generating output… Given that the “file” option is incompatible with the “dir” option, how can the name of generated output files be specified?
My use case is to bundle multiple variants from the same typescript project which uses incremental builds and multiple modules.
@dstaley I’m experiencing a similar error when trying to use this plugin with Vue.js single file components. Did you find a workaround?
Hey folks. This is a call for contribution and help in resolving this TypeScript plugin issue. We’re working with limited resources and the folks who can help have limited time. If you can help by triaging and submitting a Pull Request, we’d be happy to review it.
We’ve made some adjustments to the plugin and right now we’re requiring that
outDirbe located within your Rollup output dir. Unfortunately the hook that checks this is run after the error is emitted. I’ll try to fix this particular case whereemittedFileNamesandemittedFilesdoesn’t match.A quick fix for now is to set
compilerOptions.rootDirto"src".Hey folks. This issue hasn’t received any traction for 60 days, so we’re going to close this for housekeeping. If this is still an ongoing issue, please do consider contributing a Pull Request to resolve it. Further discussion is always welcome even with the issue closed. If anything actionable is posted in the comments, we’ll consider reopening it. ⓘ
fwiw, I just got also…
(node:9170) UnhandledPromiseRejectionWarning: Error: Cannot find module 'tslib/tslib.es6.js' from '[...]/node_modules/@rollup/plugin-typescript/dist'but when checking that dir it contains no
tslib/tslib.es6.jsbut onlyEdit: ignore what I wrote, I just had to install tslib
May be related to #249.
I have a reproduction repo that can build with
outDirconfigured.