2016-08-08 4 views
3

Я пытаюсь настроить новый WebPack + angular2 проект, и я получаю некоторые ошибки:ошибка TS2384: подписи перегрузки должны быть все окружающей среды или не окружающей среды

Когда я использую «старт НПМ», я получил много ошибок, как это:

ERROR in ./~/reflect-metadata/Reflect.ts 
(953,21): error TS2384: Overload signatures must all be ambient or non-ambient. 

ERROR in ./~/reflect-metadata/Reflect.ts 
(985,21): error TS2384: Overload signatures must all be ambient or non-ambient. 

ERROR in ./~/reflect-metadata/Reflect.ts 
(1021,21): error TS2384: Overload signatures must all be ambient or non-ambient. 

ERROR in /home/gchiara/desenvolvimento/honda/typings/globals/node/index.d.ts 
(2301,5): error TS2309: An export assignment cannot be used in a module with other exported elements. 

Вот мой код:

package.json

{ 
 
    "name": "app", 
 
    "version": "1.0.0", 
 
    "description": "app", 
 
    "main": "index.js", 
 
    "scripts": { 
 
    "test": "echo \"Error: no test specified\" && exit 1", 
 
    "typings": "typings", 
 
    "start": "webpack-dev-server --inline --progress --port 3000" 
 
    }, 
 
    "author": "", 
 
    "license": "ISC", 
 
    "dependencies": { 
 
    "@angular/common": "2.0.0-rc.4", 
 
    "@angular/compiler": "2.0.0-rc.4", 
 
    "@angular/core": "2.0.0-rc.4", 
 
    "@angular/forms": "0.2.0", 
 
    "@angular/http": "2.0.0-rc.4", 
 
    "@angular/platform-browser": "2.0.0-rc.4", 
 
    "@angular/platform-browser-dynamic": "2.0.0-rc.4", 
 
    "@angular/router": "3.0.0-beta.1", 
 
    "@angular/router-deprecated": "2.0.0-rc.2", 
 
    "@angular/upgrade": "2.0.0-rc.4", 
 
    "angular2-in-memory-web-api": "0.0.14", 
 
    "angular2-template-loader": "^0.4.0", 
 
    "core-js": "^2.4.1", 
 
    "html-loader": "^0.4.3", 
 
    "html-webpack-plugin": "^2.22.0", 
 
    "reflect-metadata": "^0.1.3", 
 
    "rxjs": "^5.0.0-beta.6", 
 
    "ts-loader": "^0.8.2", 
 
    "typescript": "^1.8.10", 
 
    "typings": "^1.3.2", 
 
    "webpack": "^1.13.1", 
 
    "webpack-dev-middleware": "^1.6.1", 
 
    "webpack-dev-server": "^1.14.1", 
 
    "webpack-merge": "^0.14.1", 
 
    "zone.js": "^0.6.12" 
 
    }, 
 
    "devDependencies": { 
 
    "concurrently": "^2.0.0" 
 
    } 
 
}

webpack.config.js

var webpack = require('webpack'); 
 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 
 

 
module.exports = { 
 

 
    entry: { 
 
    'polyfills': './src/polyfills.ts', 
 
    'vendor': './src/vendor.ts', 
 
    'app': './src/app.ts' 
 
    }, 
 

 
    output: { 
 
    filename: '[name].js' 
 
    }, 
 

 
    resolve: { 
 
    extensions: ['', '.js', '.ts'] 
 
    }, 
 

 
    module: { 
 
    loaders: [ 
 
     { 
 
     test: /\.ts$/, 
 
     loaders: ['ts', 'angular2-template-loader'] 
 
     }, 
 
     { 
 
     test: /\.html$/, 
 
     loader: 'html' 
 
     }, 
 
    ] 
 
    }, 
 

 
    plugins: [ 
 

 
    new webpack.optimize.CommonsChunkPlugin({ 
 
     name: ['app', 'vendor', 'polyfills'] 
 
    }), 
 

 
    new HtmlWebpackPlugin({ 
 
     template: './src/index.html' 
 
    }) 
 
    ], 
 

 
    devServer: { 
 
    historyApiFallback: true, 
 
    stats: 'minimal' 
 
    } 
 
    
 
}

polyfills.ts

import 'core-js/es6'; 
 
import 'reflect-metadata'; 
 

 
require('zone.js/dist/zone'); 
 

 

 
if (process.env.ENV === 'production') { 
 
    // Production 
 
} else { 
 
    // Development 
 
    Error['stackTraceLimit'] = Infinity; 
 
    require('zone.js/dist/long-stack-trace-zone'); 
 
}

vendor.ts

// Angular 2 
 
import '@angular/platform-browser'; 
 
import '@angular/platform-browser-dynamic'; 
 
import '@angular/core'; 
 
import '@angular/common'; 
 
import '@angular/http'; 
 
import '@angular/router'; 
 

 
import 'rxjs';

app.ts

import { bootstrap } from '@angular/platform-browser-dynamic'; 
 
import { enableProdMode } from '@angular/core'; 
 
import { AppComponent } from './app/app.component'; 
 

 
if (process.env.ENV === 'production') { 
 
    enableProdMode(); 
 
} 
 

 
bootstrap(AppComponent, []);

app.component.ts

import { Component } from '@angular/core'; 
 

 
@Component({ 
 
    selector: 'app', 
 
    templateUrl: './app.component.html' 
 
}) 
 

 
export class AppComponent { 
 
    
 
}

приложение работает нормально, но я получил тонны ошибок в консоли. Кто-нибудь знает почему?

Спасибо!

ответ

0

Обновление до webpack2 решает проблему.

1

Это происходит из-за динамических потребностей в вашем коде, я думаю. Способ обойти это использовать ContextREplacementPlugin. По крайней мере, если вы используете webpack 1.x. Возможно, webpack2 сделает это за вас.

new webpack.ContextReplacementPlugin(/reflect/, /^$/)

Смежные вопросы