TypeError: Cannot read property 'directoryExists' of undefined
TypeError: Cannot read property 'directoryExists' of undefined
通过 ng init
将我的 Angular 2 CLI 项目从 1.0.0-beta.11-webpack.2
更新到 1.0.0-beta.11-webpack.8
,并且 运行 ng serve
导致以下错误:
** NG Live Development Server is running on http://localhost:4200. **
10% building modules 4/7 modules 3 active ...ode_modules/style-loader/addStyles.jsTypeError: Cannot read property 'directoryExists' of undefined
at Object.getAutomaticTypeDirectiveNames (/home/jan/src/fm-repos/fm-ui/node_modules/typescript/lib/typescript.js:43865:17)
at State.loadTypesFromConfig (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:150:36)
at new State (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:144:14)
at Object.ensureInstance (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/instance.ts:150:19)
at compiler (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:37:20)
at Object.loader (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:18:18)
at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)
at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)
at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)
at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:189:10)
at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:204:3
at Object.context.callback (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:87:13)
at Object.module.exports (/home/jan/src/fm-repos/fm-ui/node_modules/angular2-template-loader/index.js:32:10)
at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)
at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)
at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)
at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:173:4
at Storage.finished (/home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:39:16)
at /home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/node_modules/graceful-fs/graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3) 'TypeError: Cannot read property \'directoryExists\' of undefined\n at Object.getAutomaticTypeDirectiveNames (/home/jan/src/fm-repos/fm-ui/node_modules/typescript/lib/typescript.js:43865:17)\n at State.loadTypesFromConfig (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:150:36)\n at new State (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:144:14)\n at Object.ensureInstance (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/instance.ts:150:19)\n at compiler (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:37:20)\n at Object.loader (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:18:18)\n at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)\n at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)\n at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)\n at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:189:10)\n at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:204:3\n at Object.context.callback (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:87:13)\n at Object.module.exports (/home/jan/src/fm-repos/fm-ui/node_modules/angular2-template-loader/index.js:32:10)\n at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)\n at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)\n at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)\n at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:173:4\n at Storage.finished (/home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:39:16)\n at /home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/node_modules/graceful-fs/graceful-fs.js:78:16\n at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)'
1753ms building modules
2ms sealing
0ms optimizing
0ms basic module optimization
2ms module optimization
0ms advanced module optimization
4ms basic chunk optimization
0ms chunk optimization
0ms advanced chunk optimization
0ms module and chunk tree optimization
10ms module reviving
0ms module order optimization
1ms module id optimization
1ms chunk reviving
0ms chunk order optimization
3ms chunk id optimization
3ms hashing
0ms module assets processing
19ms chunk assets processing
1ms additional chunk assets processing
0ms recording
0ms additional asset processing
192ms chunk asset optimization
40ms asset optimization
15ms emitting
Hash: 865ed065ce2165dac568
Version: webpack 2.1.0-beta.21
Time: 2067ms
Asset Size Chunks Chunk Names
main.bundle.js 241 kB 0, 2 [emitted] main
styles.bundle.js 10.2 kB 1, 2 [emitted] styles
inline.js 5.53 kB 2 [emitted] inline
main.map 295 kB 0, 2 [emitted] main
styles.map 14 kB 1, 2 [emitted] styles
inline.map 5.59 kB 2 [emitted] inline
index.html 616 bytes [emitted]
assets/.npmignore 0 bytes [emitted]
ERROR in ./src/main.ts
Module build failed: TypeError: Cannot read property 'directoryExists' of undefined
at Object.getAutomaticTypeDirectiveNames (/home/jan/src/fm-repos/fm-ui/node_modules/typescript/lib/typescript.js:43865:17)
at State.loadTypesFromConfig (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:150:36)
at new State (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:144:14)
at Object.ensureInstance (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/instance.ts:150:19)
at compiler (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:37:20)
at Object.loader (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:18:18)
@ multi main
Child html-webpack-plugin for "index.html":
Asset Size Chunks Chunk Names
index.html 2.96 kB 0
webpack: bundle is now VALID.
这是一个 Angular CLI 1.0.0-beta.11-webpack.8
依赖性错误;您可以通过以下方式解决应用程序中的错误:
npm install awesome-typescript-loader@2.2.1 --save-dev
临时修复。
只有一件事对我有用 运行 到我的图书馆 cd projects/{library}/tsconfig.lib.json: "annotateForClosureCompiler": true
将其从 true
更改为 false
。
我认为这可能是 ngc 中的一个问题。我可能找到了相关的 https://github.com/angular/angular/pull/26738。
来源
https://www.gitmemory.com/issue/angular/tsickle/1046/516028024
只需在 tsconfig.lib.json
上将 annotateForClosureCompiler
设置为 false
projects/{your_project_name}/tsconfig.lib.json
示例:
{
"compilerOptions": {
/* */
},
"angularCompilerOptions": {
"annotateForClosureCompiler": false,
/* */
},
}
通过 ng init
将我的 Angular 2 CLI 项目从 1.0.0-beta.11-webpack.2
更新到 1.0.0-beta.11-webpack.8
,并且 运行 ng serve
导致以下错误:
** NG Live Development Server is running on http://localhost:4200. **
10% building modules 4/7 modules 3 active ...ode_modules/style-loader/addStyles.jsTypeError: Cannot read property 'directoryExists' of undefined
at Object.getAutomaticTypeDirectiveNames (/home/jan/src/fm-repos/fm-ui/node_modules/typescript/lib/typescript.js:43865:17)
at State.loadTypesFromConfig (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:150:36)
at new State (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:144:14)
at Object.ensureInstance (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/instance.ts:150:19)
at compiler (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:37:20)
at Object.loader (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:18:18)
at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)
at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)
at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)
at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:189:10)
at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:204:3
at Object.context.callback (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:87:13)
at Object.module.exports (/home/jan/src/fm-repos/fm-ui/node_modules/angular2-template-loader/index.js:32:10)
at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)
at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)
at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)
at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:173:4
at Storage.finished (/home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:39:16)
at /home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/node_modules/graceful-fs/graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3) 'TypeError: Cannot read property \'directoryExists\' of undefined\n at Object.getAutomaticTypeDirectiveNames (/home/jan/src/fm-repos/fm-ui/node_modules/typescript/lib/typescript.js:43865:17)\n at State.loadTypesFromConfig (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:150:36)\n at new State (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:144:14)\n at Object.ensureInstance (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/instance.ts:150:19)\n at compiler (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:37:20)\n at Object.loader (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:18:18)\n at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)\n at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)\n at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)\n at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:189:10)\n at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:204:3\n at Object.context.callback (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:87:13)\n at Object.module.exports (/home/jan/src/fm-repos/fm-ui/node_modules/angular2-template-loader/index.js:32:10)\n at LOADER_EXECUTION (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:95:14)\n at runSyncOrAsync (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:96:4)\n at iterateNormalLoaders (/home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:200:2)\n at /home/jan/src/fm-repos/fm-ui/node_modules/loader-runner/lib/LoaderRunner.js:173:4\n at Storage.finished (/home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/lib/CachedInputFileSystem.js:39:16)\n at /home/jan/src/fm-repos/fm-ui/node_modules/enhanced-resolve/node_modules/graceful-fs/graceful-fs.js:78:16\n at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:445:3)'
1753ms building modules
2ms sealing
0ms optimizing
0ms basic module optimization
2ms module optimization
0ms advanced module optimization
4ms basic chunk optimization
0ms chunk optimization
0ms advanced chunk optimization
0ms module and chunk tree optimization
10ms module reviving
0ms module order optimization
1ms module id optimization
1ms chunk reviving
0ms chunk order optimization
3ms chunk id optimization
3ms hashing
0ms module assets processing
19ms chunk assets processing
1ms additional chunk assets processing
0ms recording
0ms additional asset processing
192ms chunk asset optimization
40ms asset optimization
15ms emitting
Hash: 865ed065ce2165dac568
Version: webpack 2.1.0-beta.21
Time: 2067ms
Asset Size Chunks Chunk Names
main.bundle.js 241 kB 0, 2 [emitted] main
styles.bundle.js 10.2 kB 1, 2 [emitted] styles
inline.js 5.53 kB 2 [emitted] inline
main.map 295 kB 0, 2 [emitted] main
styles.map 14 kB 1, 2 [emitted] styles
inline.map 5.59 kB 2 [emitted] inline
index.html 616 bytes [emitted]
assets/.npmignore 0 bytes [emitted]
ERROR in ./src/main.ts
Module build failed: TypeError: Cannot read property 'directoryExists' of undefined
at Object.getAutomaticTypeDirectiveNames (/home/jan/src/fm-repos/fm-ui/node_modules/typescript/lib/typescript.js:43865:17)
at State.loadTypesFromConfig (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:150:36)
at new State (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/host.ts:144:14)
at Object.ensureInstance (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/instance.ts:150:19)
at compiler (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:37:20)
at Object.loader (/home/jan/src/fm-repos/fm-ui/node_modules/awesome-typescript-loader/src/index.ts:18:18)
@ multi main
Child html-webpack-plugin for "index.html":
Asset Size Chunks Chunk Names
index.html 2.96 kB 0
webpack: bundle is now VALID.
这是一个 Angular CLI 1.0.0-beta.11-webpack.8
依赖性错误;您可以通过以下方式解决应用程序中的错误:
npm install awesome-typescript-loader@2.2.1 --save-dev
临时修复。
只有一件事对我有用 运行 到我的图书馆 cd projects/{library}/tsconfig.lib.json: "annotateForClosureCompiler": true
将其从 true
更改为 false
。
我认为这可能是 ngc 中的一个问题。我可能找到了相关的 https://github.com/angular/angular/pull/26738。
来源 https://www.gitmemory.com/issue/angular/tsickle/1046/516028024
只需在 tsconfig.lib.json
annotateForClosureCompiler
设置为 false
projects/{your_project_name}/tsconfig.lib.json
示例:
{
"compilerOptions": {
/* */
},
"angularCompilerOptions": {
"annotateForClosureCompiler": false,
/* */
},
}