electron-userland / electron-builder

A complete solution to package and build a ready for distribution Electron app with “auto update” support out of the box
https://www.electron.build
MIT License
13.58k stars 1.73k forks source link

electron-compile build fails when .d.ts files present in project #2036

Closed fauu closed 7 years ago

fauu commented 7 years ago

Build fails with the following error:

$ npm-run build --linux --x64
electron-builder 19.27.3
No native production dependencies
Packaging for linux x64 using electron 1.7.5 to dist/linux-unpacked
⚠️  Application category is not set for Linux (linux.category).
Please see https://electron.build/configuration/configuration#LinuxBuildOptions-category
⚠️  Application icon is not set, default Electron icon will be used
Compiling using electron-compile
Error: Debug Failure. False expression: Output generation failed
    at Object.transpileModule (/home/nope/code/langlire/node_modules/typescript/lib/typescript.js:84011:18)
    at TypeScriptCompiler.compileSync (/home/nope/code/langlire/node_modules/electron-compilers/src/js/typescript.js:68:21)
    at /home/nope/code/langlire/node_modules/electron-compilers/src/compiler-base.js:137:17
    at Generator.next (<anonymous>)
    at step (/home/nope/code/langlire/node_modules/electron-compilers/lib/compiler-base.js:7:191)
    at /home/nope/code/langlire/node_modules/electron-compilers/lib/compiler-base.js:7:437
    at Promise (<anonymous>)
    at /home/nope/code/langlire/node_modules/electron-compilers/lib/compiler-base.js:7:99
    at TypeScriptCompiler.compile (/home/nope/code/langlire/node_modules/electron-compilers/src/compiler-base.js:136:56)
    at /home/nope/code/langlire/node_modules/electron-compile/src/compiler-host.js:348:33
    at Generator.next (<anonymous>)
    at step (/home/nope/code/langlire/node_modules/electron-compile/lib/compiler-host.js:47:191)
    at /home/nope/code/langlire/node_modules/electron-compile/lib/compiler-host.js:47:361
    at <anonymous>
From previous event:
    at /home/nope/code/langlire/node_modules/electron-builder/src/util/AppFileCopierHelper.ts:67:25
    at Generator.next (<anonymous>)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)
From previous event:
    at compileUsingElectronCompile (/home/nope/code/langlire/node_modules/electron-builder/out/util/AppFileCopierHelper.js:100:22)
    at /home/nope/code/langlire/node_modules/electron-builder/src/util/AppFileCopierHelper.ts:48:28
From previous event:
    at computeFileSets (/home/nope/code/langlire/node_modules/electron-builder/out/util/AppFileCopierHelper.js:47:21)
    at _computeFileSets (/home/nope/code/langlire/node_modules/electron-builder/src/platformPackager.ts:220:14)
    at LinuxPackager.copyAppFiles (/home/nope/code/langlire/node_modules/electron-builder/src/platformPackager.ts:232:27)
    at /home/nope/code/langlire/node_modules/electron-builder/src/platformPackager.ts:176:10
    at Generator.next (<anonymous>)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)
From previous event:
    at LinuxPackager.doPack (/home/nope/code/langlire/node_modules/electron-builder/out/platformPackager.js:251:11)
    at /home/nope/code/langlire/node_modules/electron-builder/src/platformPackager.ts:105:16
    at Generator.next (<anonymous>)
From previous event:
    at LinuxPackager.pack (/home/nope/code/langlire/node_modules/electron-builder/out/platformPackager.js:174:11)
    at /home/nope/code/langlire/node_modules/electron-builder/src/packager.ts:260:24
From previous event:
    at Packager.doBuild (/home/nope/code/langlire/node_modules/electron-builder/out/packager.js:338:11)
    at /home/nope/code/langlire/node_modules/electron-builder/src/packager.ts:186:52
    at Generator.next (<anonymous>)
From previous event:
    at Packager.build (/home/nope/code/langlire/node_modules/electron-builder/out/packager.js:257:11)
    at /home/nope/code/langlire/node_modules/electron-builder/src/builder.ts:266:40
    at Generator.next (<anonymous>)
    at build (/home/nope/code/langlire/node_modules/electron-builder/out/builder.js:69:21)
    at loadEnv.then (/home/nope/code/langlire/node_modules/electron-builder/src/cli/cli.ts:49:4)
From previous event:
    at build (/home/nope/code/langlire/node_modules/electron-builder/out/builder.js:69:21)
    at loadEnv.then (/home/nope/code/langlire/node_modules/electron-builder/out/cli/cli.js:155:79)
    at runCallback (timers.js:781:20)
    at tryOnImmediate (timers.js:743:5)
    at processImmediate [as _immediateCallback] (timers.js:714:5)
From previous event:
    at Object.args [as handler] (/home/nope/code/langlire/node_modules/electron-builder/out/cli/cli.js:155:68)
    at Object.self.runCommand (/home/nope/code/langlire/node_modules/electron-builder/node_modules/yargs/lib/command.js:233:22)
    at Object.Yargs.self._parseArgs (/home/nope/code/langlire/node_modules/electron-builder/node_modules/yargs/yargs.js:1018:24)
    at Object.get [as argv] (/home/nope/code/langlire/node_modules/electron-builder/node_modules/yargs/yargs.js:927:19)
    at Object.<anonymous> (/home/nope/code/langlire/node_modules/electron-builder/out/cli/cli.js:151:418)
    at Module._compile (module.js:573:30)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Function.Module.runMain (module.js:609:10)
    at startup (bootstrap_node.js:158:16)
    at bootstrap_node.js:598:3

When running electron-compile manually (or through electron-forge) the errors are there as well, but the compilation finishes successfully:

$ rm -rf .cache && NODE_ENV=production npm-run electron-compile src
Failed to compile file: src/globals.d.ts
Debug Failure. False expression: Output generation failed
Failed to compile file: src/vendor/natural/LevenshteinDistance.d.ts
Debug Failure. False expression: Output generation failed
$ ls .cache
b4e401d18308a3600c8c3450b5317f746f9258fe
c64d96ef31725d2430e311ab2d697fe1681775fc
compiler-info.json.gz
ebbeac2ce84da83b22b0c3c7f56b2cf07dc8d634

electron-builder runs fine after the .d.ts files have been removed from the project:

$ rm src/globals.d.ts src/vendor/natural/LevenshteinDistance.d.ts
$ npm-run build --linux --x64
electron-builder 19.27.3
No native production dependencies
Packaging for linux x64 using electron 1.7.5 to dist/linux-unpacked
⚠️  Application category is not set for Linux (linux.category).
Please see https://electron.build/configuration/configuration#LinuxBuildOptions-category
⚠️  Application icon is not set, default Electron icon will be used
Compiling using electron-compile
Building AppImage for arch x64

node 8.4.0 npm 5.4.0 dependencies:

  "dependencies": {
    "@gxl/epub-parser": "fauu/epub-parser#build",
    "chinese-tokenizer": "^0.1.2",
    "dexie": "^2.0.0-beta",
    "electron-compile": "^6.4.1",
    "electron-debug": "^1.4.0",
    "electron-devtools-installer": "^2.2.0",
    "franc-min": "^3.1.1",
    "isbinaryfile": "^3.0.2",
    "kuromoji": "^0.1.1",
    "lodash.debounce": "^4.0.8",
    "lodash.minby": "^4.6.0",
    "lodash.zip": "^4.2.0",
    "mdi-react": "^2.0.46",
    "mobx": "^3.2.2",
    "mobx-react": "^4.2.2",
    "mobx-utils": "^3.1.1",
    "module-alias": "^2.0.1",
    "react": "^15.6.1",
    "react-css-transition-replace": "^2.2.1",
    "react-dom": "^15.6.1",
    "react-hot-loader": "^3.0.0-beta.6",
    "source-map-support": "^0.4.17",
    "styled-components": "^2.1.2",
    "tslib": "^1.7.1"
  },
  "devDependencies": {
    "@types/electron-debug": "^1.1.0",
    "@types/electron-devtools-installer": "^2.0.2",
    "@types/lodash": "^4.14.74",
    "@types/react": "^15.6.1",
    "@types/react-css-transition-replace": "^2.1.1",
    "@types/react-dom": "^15.5.4",
    "babel-plugin-transform-async-to-generator": "^6.24.1",
    "babel-preset-env": "^1.6.0",
    "babel-preset-react": "^6.24.1",
    "electron-builder": "^19.27.3",
    "electron-forge": "^4.0.0",
    "electron-forge-maker-appimage": "^0.0.0-semantic-release",
    "electron-prebuilt-compile": "1.7.5",
    "prettier": "^1.6.1",
    "tslint": "^5.7.0",
    "tslint-config-prettier": "^1.5.0",
    "tslint-microsoft-contrib": "^5.0.1",
    "tslint-react": "^3.2.0",
    "typescript": "^2.5.2"
  }
develar commented 7 years ago

We recommend to use https://github.com/electron-userland/electron-webpack

fauu commented 7 years ago

Yeah, I switched to a custom webpack setup because while this issue is easy to work around, electron-compile was giving me other troubles as well. Electron-builder works fine with the new setup.

develar commented 7 years ago

Yes, as stated in the electron-webpack readme no one want home-grown tool and reinvent the wheel.