2017-02-13 120 views
6

我想通過關注this tutorial來學習webpack。使用Webpack時出錯

當我運行pm開始時,我收到了70個錯誤,如下所示。

$ npm start 

> [email protected] start /Users/angular-webpak 

[at-loader] Using [email protected] from typescript and "tsconfig.json" from /Users/angular-webpak/src/tsconfig.json. 

[at-loader] Checking finished with 70 errors 
... 

ERROR in [at-loader] node_modules/@types/jasmine/index.d.ts:39:52 
    TS1005: '=' expected. 
ERROR in [at-loader] node_modules/@angular/common/src/directives/ng_class.d.ts:48:34 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/common/src/pipes/async_pipe.d.ts:44:38 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/aot/compiler.d.ts:32:38 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/aot/compiler.d.ts:44:32 
    TS2304: Cannot find name 'Map'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/aot/compiler_host.d.ts:20:33 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/compile_metadata.d.ts:342:20 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/compile_metadata.d.ts:344:28 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/compile_metadata.d.ts:346:15 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/compile_metadata.d.ts:348:23 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/compile_metadata.d.ts:350:17 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/compile_metadata.d.ts:352:25 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/directive_normalizer.d.ts:38:72 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/directive_normalizer.d.ts:40:74 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/i18n/extractor.d.ts:14:33 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/i18n/extractor.d.ts:22:35 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/jit/compiler.d.ts:44:49 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/jit/compiler.d.ts:46:65 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/metadata_resolver.d.ts:58:104 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/output/output_ast.d.ts:433:63 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/resource_loader.d.ts:13:23 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/util.d.ts:33:18 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/compiler/src/util.d.ts:34:46 
    TS2304: Cannot find name 'Promise'. 
<snipped several similar errors> 
ERROR in [at-loader] node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts:24:15 
    TS2304: Cannot find name 'Map'. 
ERROR in [at-loader] node_modules/@angular/core/src/change_detection/differs/default_keyvalue_differ.d.ts:28:16 
    TS2304: Cannot find name 'Map'. 
<snipped several similar errors> 
ERROR in [at-loader] node_modules/@angular/platform-browser/src/dom/shared_styles_host.d.ts:11:30 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/platform-browser/src/dom/shared_styles_host.d.ts:22:30 
    TS2304: Cannot find name 'Set'. 
ERROR in [at-loader] node_modules/@angular/router/src/config.d.ts:307:85 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/interfaces.d.ts:78:99 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/interfaces.d.ts:157:109 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/interfaces.d.ts:227:115 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/interfaces.d.ts:297:89 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/interfaces.d.ts:367:50 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/router.d.ts:392:70 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/router.d.ts:414:59 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@angular/router/src/utils/collection.d.ts:36:79 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/@types/jasmine/index.d.ts:39:38 
    TS2371: A parameter initializer is only allowed in a function or constructor implementation. 
ERROR in [at-loader] node_modules/@types/jasmine/index.d.ts:39:46 
    TS2304: Cannot find name 'keyof'. 
ERROR in [at-loader] node_modules/rxjs/Observable.d.ts:68:60 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/rxjs/Observable.d.ts:68:70 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/rxjs/observable/PromiseObservable.d.ts:40:31 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/rxjs/observable/PromiseObservable.d.ts:41:26 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/rxjs/operator/toPromise.d.ts:2:60 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/rxjs/operator/toPromise.d.ts:3:79 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] node_modules/rxjs/operator/toPromise.d.ts:3:89 
    TS2304: Cannot find name 'Promise'. 
ERROR in [at-loader] src/app/app.component.ts:8:14 
    TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning. 
ERROR in [at-loader] src/app/app.module.ts:13:14 
    TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning. 
Child html-webpack-plugin for "index.html": 
    chunk {0} index.html 299 bytes [entry] [rendered] 
Child extract-text-webpack-plugin: 
    chunk {0} extract-text-webpack-plugin-output-filename 1.95 kB [entry] [rendered] 
webpack: Failed to compile. 
+0

'室射頻nodes_modules'然後'NPM install'然後'NPM start' – Shota

+0

都能跟得上移動tsconfig.json到src文件夾。沒有幫助。 – user2995358

回答

8
+0

是的,問題與tsconfig.json和webpack.common.js配置的位置Irfan Syed和Lamer提到。這是正確的,因爲tsconfig.json的標準位置是根目錄。根據鏈接修改網站pack.common.js。它工作得很好! 謝謝。 – user2995358

+0

我不得不扭轉拉我的工作要求。 Typescript沒有使用/找到tsconfig。按照Typescript文檔中所述添加configFileName選項後,它是否有效。 –

2
  1. 由於您使用的角度2,在你的情況下,在階矩的唯一可能的解決方案是凍結@types/jasmine版本2.5.41

    請參見:https://stackoverflow.com/a/42182400/3472184

  2. 此外,它看起來就像你有沒有tsconfig.json ES6 支持

    參見:https://stackoverflow.com/a/38212418/3472184。請注意0​​和target屬性。

+0

68以上的錯誤消失了!但是,我仍然得到: TS1219:設置'experimen talDecorators'選項刪除此警告。 我tsconfig.json如下: ' { 「compilerOptions」:{ 「目標」: 「ES5」, 「模塊」: 「CommonJS的」, 「moduleResolution」: 「節點」, 「sourceMap」 :真, 「emitDecoratorMetadata」:真, 「experimentalDecorators」:真, 「LIB」:[ 「ES5」, 「es2015.promise」], 「noImplicitAny」:真, 「suppressImplicitAnyIndexErrors」:真 } 「include」:[ 「src/**/*。ts」 ], 「exclude」:[ 「node_modules」 ] } ' – user2995358

1
  1. 移動tsconfig.json到./src folder。請參閱config/webpack.common.js線7:

    options: { 
        configFileName: helpers.root('src', 'tsconfig.json') 
    } 
    
  2. 變化tsconfig.json到:

    { 
        "compilerOptions": { 
        "target": "es5", 
        "module": "commonjs", 
        "moduleResolution": "node", 
        "sourceMap": true, 
        "emitDecoratorMetadata": true, 
        "experimentalDecorators": true, 
        "lib": ["es2015", "dom"], 
        "noImplicitAny": true, 
        "suppressImplicitAnyIndexErrors": true, 
        "types" : ["node"] 
        } 
    } 
    
0

@ user2995358爲您的TS1219:設置'experimenterDecorators'opti開始刪除此警告。

從根