microsoft / TypeScript

TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
https://www.typescriptlang.org
Apache License 2.0
100.29k stars 12.39k forks source link

Unable to generate declaration files d.ts #20302

Closed klinki closed 6 years ago

klinki commented 6 years ago

Hi guys, I have problem with generating .d.ts files. tsc won't generate them for me, even though I have declaration: true in tsconfig.json.

I tried following 5 cases:

except the first case, which at least showed error, none of other 4 cases showed any error, neither or produced d.ts files as expected.

TypeScript Version: 2.0.10, 2.4.2, 2.6.2, next, I haven't tried on any other

tsconfig.json Code

{
    "compilerOptions": {
        "noImplicitAny": true,
        "module": "commonjs",
        "target": "es5",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "declaration": true,
        "moduleResolution": "node",
        "outDir": "./dist",
        "declarationDir": "./dec",
        "noEmitOnError": false
    },
    "include": [
      "src/index.ts"
    ],
    "exclude": [
      "node_modules",
      "tests"
    ]
}

(You can also have a look on my repo, it is really small one: https://github.com/klinki/HumanizeDuration.ts/tree/separate-languages )

Expected behavior: .d.ts files should be generated when declaration: true is in tsconfig.json

Actual behavior: It is not generated.

mhegazy commented 6 years ago

I can not see this locally. if you believe this is a compiler bug and not a configuration issue, please provide a minimal reproduction of the issue.

c:\test\20302\HumanizeDuration.ts>git log -2
commit 676c3182dd16e4f17486acf8d147c94cefff12c9 (HEAD -> master, origin/master, origin/HEAD)
Author: Nightapes <svbeisch@gmail.com>
Date:   Mon Aug 22 20:34:10 2016 +0200

    docs(README): add build status

commit 64f3764cceb53cc784cf4d44303bb88f8398f8b6
Author: Nightapes <svbeisch@gmail.com>
Date:   Mon Aug 22 20:28:38 2016 +0200

    docs(CONTRIBUTING): add CONTRIBUTING.md

c:\test\20302\HumanizeDuration.ts>git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   tsconfig.json

no changes added to commit (use "git add" and/or "git commit -a")

c:\test\20302\HumanizeDuration.ts>type tsconfig.json
{
    "compilerOptions": {
        "noImplicitAny": true,
        "module": "commonjs",
        "target": "es5",
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "inlineSourceMap": true,
        "inlineSources": true,
        "declaration": true,
        "moduleResolution": "node"
    },
    "files": [
        //"typings/main.d.ts",
        "humanize-duration-ts.ts",
        "./src/humanize-duration.interface.ts",
        "./src/humanize-duration.lang.ts",
        "./src/humanize-duration.ts",
        "./tests/humanize-duration.spec.ts"
    ]
}

c:\test\20302\HumanizeDuration.ts>tsc --v
Version 2.7.0-dev.20171122

c:\test\20302\HumanizeDuration.ts>tsc --p tsconfig.json

c:\test\20302\HumanizeDuration.ts>dir *.d.ts
 Volume in drive C is OSDisk
 Volume Serial Number is 9E6D-383F

 Directory of c:\test\20302\HumanizeDuration.ts

11/28/2017  10:26 AM               141 humanize-duration-ts.d.ts
               1 File(s)            141 bytes
               0 Dir(s)   6,888,452,096 bytes free

c:\test\20302\HumanizeDuration.ts>dir src\*.d.ts
 Volume in drive C is OSDisk
 Volume Serial Number is 9E6D-383F

 Directory of c:\test\20302\HumanizeDuration.ts\src

11/28/2017  10:26 AM               685 humanize-duration.d.ts
11/28/2017  10:26 AM               740 humanize-duration.interface.d.ts
11/28/2017  10:26 AM               379 humanize-duration.lang.d.ts
               3 File(s)          1,804 bytes
               0 Dir(s)   6,888,448,000 bytes free
klinki commented 6 years ago

sorry, it wasn't in master, but in separate-languages branch which was on the link. For convenience, I just merged it into master.

mhegazy commented 6 years ago
c:\test\20302\HumanizeDuration.ts>git remote -v
origin  https://github.com/klinki/HumanizeDuration.ts.git (fetch)
origin  https://github.com/klinki/HumanizeDuration.ts.git (push)

c:\test\20302\HumanizeDuration.ts>git pull
Already up-to-date.

c:\test\20302\HumanizeDuration.ts>git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working tree clean

c:\test\20302\HumanizeDuration.ts>tsc --v
Version 2.7.0-dev.20171122

c:\test\20302\HumanizeDuration.ts>tsc  --listEmittedFiles
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/humanize-duration.interface.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/humanize-duration.interface.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/humanize-duration.lang.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/humanize-duration.lang.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/en.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/en.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/humanize-duration.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/humanize-duration.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ar.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ar.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ca.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ca.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/cs_CZ.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/cs_CZ.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/da.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/da.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/de.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/de.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/es.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/es.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/fi.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/fi.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/fr.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/fr.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/gr.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/gr.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/hu.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/hu.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/id.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/id.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/it.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/it.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ja.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ja.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ko.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ko.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/lt.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/lt.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ms.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ms.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/nl.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/nl.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/no.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/no.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/pl.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/pl.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/pt.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/pt.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ru.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/ru.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/sv.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/sv.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/tr.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/tr.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/uk.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/uk.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/vi.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/vi.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/zh_CN.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/zh_CN.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/zh_TW.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/zh_TW.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/index.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/lang/index.d.ts
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/index.js
TSFILE: c:/test/20302/HumanizeDuration.ts/dist/index.d.ts
klinki commented 6 years ago

hmm that's strange, it works on my second computer which is running Windows... I will test it again on work computer.

klinki commented 6 years ago

I'm closing it, because it works now. Unfortunately I updated system meanwhile, so this could change the environment and I cannot reproduce it now.