Closed d8corp closed 1 year ago
Thanks for the detailed issue and repros @d8corp!
- Does
tsc
have the same output? If so, please explain why this is incorrect behavior Yes I guess,tsc
have the same output, but it strange, because of uselessjs
files removed and.d.ts
not.
So this is pretty key -- the reason we ask this is because, like most TS integrations (including Webpack's ts-loader
), we try to standardize on tsc
's behavior for a consistent experience for developers.
Usually, any difference between tsc
and a TS integration is more confusing to developers than the opposite.
In your case, this is relatively easy to solve:
tsc
figures out what files to perform operations on based on your tsconfig
tsconfig
has "include": ["src"]
in it, which includes b.ts
, even if you don't use it in your build."include": ["src/index.ts"]
include
with files
: "files": ["src/index.ts"]
One key caveat here is that tsc
and your IDE won't type-check b.ts
if you do this. So this is why you may want to have a separate tsconfig.build.json
that only differs in include
/files
and can otherwise extends
your tsconfig.json
(or vice-versa).
As such this isn't a bug, but tsc
behavior.
Hopefully the above should fix your issue 🙂
I met the same confusion, I tried
I met the same confusion, I tried
this is working in many repos, so you'd have to provide a reproduction or failing test with this configuration not working. otherwise, similar to the above, it is likely a misconfiguration.
Troubleshooting
Does
tsc
have the same output? If so, please explain why this is incorrect behavior Yes I guess,tsc
have the same output, but it strange, because of uselessjs
files removed and.d.ts
not.Does your Rollup plugin order match this plugin's compatibility? If not, please elaborate Yes, it's alone.
Can you create a minimal example that reproduces this behavior? Preferably, use this environment for your reproduction Examples: online and offline
What happens and why it is incorrect
There are created
.d.ts
files for that.js
excluded by rollup. So I have.d.ts
files without.js
.from
index includes only
a.ts
, no one includesb.ts
to
Environment
Reproduces everywhere.
```text System: OS: macOS 13.0.1 CPU: (8) arm64 Apple M1 Memory: 45.69 MB / 16.00 GB Shell: 5.8.1 - /bin/zsh Binaries: Node: 16.16.0 - /usr/local/bin/node Yarn: 1.22.11 - /usr/local/bin/yarn npm: 8.11.0 - /usr/local/bin/npm npmPackages: rollup: ^3.3.0 => 3.3.0 rollup-plugin-typescript2: ^0.34.1 => 0.34.1 typescript: ^4.8.4 => 4.8.4 ```
:versions
```js import typescript from 'rollup-plugin-typescript2' export default { input: './src/index.ts', output: { dir: 'result', entryFileNames: '[name].js', format: 'cjs', exports: 'named', preserveModules: true, }, plugins: [ typescript({ verbosity: 3, clean: true, }), ] } ```
:rollup.config.mjs
```json5 { "compilerOptions": { "target": "ES6", "module": "esnext", "moduleResolution": "node", "declaration": true }, "include": [ "src" ] } ```
:tsconfig.json
```json { "private": true, "scripts": { "build": "rollup -c" }, "devDependencies": { "rollup": "^3.3.0", "rollup-plugin-typescript2": "^0.34.1", "typescript": "^4.8.4" } } ```
:package.json
```text rpt2: built-in options overrides: { "noEmitHelpers": false, "importHelpers": true, "noResolve": false, "noEmit": false, "noEmitOnError": false, "inlineSourceMap": false, "outDir": "/Users/deight/cantinc/rollup-plugin-typescript2-bug/node_modules/.cache/rollup-plugin-typescript2/placeholder", "moduleResolution": 2, "allowNonTsExtensions": true } rpt2: parsed tsconfig: { "options": { "target": 2, "module": 99, "moduleResolution": 2, "declaration": true, "configFilePath": "/Users/deight/cantinc/rollup-plugin-typescript2-bug/tsconfig.json", "noEmitHelpers": false, "importHelpers": true, "noResolve": false, "noEmit": false, "noEmitOnError": false, "inlineSourceMap": false, "outDir": "/Users/deight/cantinc/rollup-plugin-typescript2-bug/node_modules/.cache/rollup-plugin-typescript2/placeholder", "allowNonTsExtensions": true }, "fileNames": [ "/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/a.ts", "/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/b.ts", "/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/index.ts" ], "typeAcquisition": { "enable": false, "include": [], "exclude": [] }, "raw": { "compilerOptions": { "target": "ES6", "module": "esnext", "moduleResolution": "node", "declaration": true }, "include": [ "src" ], "compileOnSave": false }, "errors": [], "wildcardDirectories": { "/users/deight/cantinc/rollup-plugin-typescript2-bug/src": 1 }, "compileOnSave": false } rpt2: typescript version: 4.8.4 rpt2: tslib version: 2.4.1 rpt2: rollup version: 3.3.0 rpt2: rollup-plugin-typescript2 version: 0.34.1 rpt2: plugin options: { "check": true, "verbosity": 3, "clean": true, "cacheRoot": "/Users/deight/cantinc/rollup-plugin-typescript2-bug/node_modules/.cache/rollup-plugin-typescript2", "include": [ "*.ts+(|x)", "**/*.ts+(|x)" ], "exclude": [ "*.d.ts", "**/*.d.ts" ], "abortOnError": true, "rollupCommonJSResolveHack": false, "useTsconfigDeclarationDir": false, "tsconfigOverride": {}, "transformers": [], "tsconfigDefaults": {}, "objectHashIgnoreUnknownHack": false, "cwd": "/Users/deight/cantinc/rollup-plugin-typescript2-bug", "typescript": "version 4.8.4" } rpt2: rollup config: { "external": [], "input": "./src/index.ts", "plugins": [ { "name": "rpt2" }, { "name": "stdin" } ], "output": [ { "dir": "result", "entryFileNames": "[name].js", "exports": "named", "format": "cjs", "plugins": [], "preserveModules": true } ] } rpt2: tsconfig path: /Users/deight/cantinc/rollup-plugin-typescript2-bug/tsconfig.json rpt2: included: [ "*.ts+(|x)", "**/*.ts+(|x)" ] rpt2: excluded: [ "*.d.ts", "**/*.d.ts" ] rpt2: transpiling '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/index.ts' rpt2: generated declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/index.ts' rpt2: transpiling '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/a.ts' rpt2: generated declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/a.ts' rpt2: dependency '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/a.ts' rpt2: imported by '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/index.ts' rpt2: resolving './a' imported by '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/index.ts' rpt2: to '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/a.ts' rpt2: type-checking missed '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/b.ts' rpt2: generating target 1 rpt2: generating missed declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/b.ts' rpt2: generated declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/b.ts' rpt2: emitting declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/index.ts' to 'index.d.ts' rpt2: emitting declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/a.ts' to 'a.d.ts' rpt2: emitting declarations for '/Users/deight/cantinc/rollup-plugin-typescript2-bug/src/b.ts' to 'b.d.ts' created result in 288ms ```plugin output with verbosity 3
: