2017-02-13 119 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开始删除此警告。

从根