angular.js - webpack+angular2引入awesome-typescript-loader报错

查看:150
本文介绍了angular.js - webpack+angular2引入awesome-typescript-loader报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

原来用ts-loader是没问题的,但是需要搭配angular2-template-loader,无奈换回awesome-typescript-loader,就报错了,请大家帮忙看下,有事儿直接说就行,在线等。

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/bindCallback.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/bindNodeCallback.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/combineLatest.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/concat.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/defer.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/dom/ajax.d.ts:2:15 
Invalid module name in augmentation, module '../../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/dom/webSocket.d.ts:2:15 
Invalid module name in augmentation, module '../../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/empty.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/forkJoin.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/from.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/fromEvent.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/fromEventPattern.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

ERROR in [default] /Users/honpery/personal_project/honpery_com/admin_rewrite/node_modules/rxjs/add/observable/fromPromise.d.ts:2:15 
Invalid module name in augmentation, module '../../Observable' cannot be found.

下面是我的tsconfig.json文件

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "experimentalDecorators": true
        // "outDir": ""
    },
    "buildOnSave": false,
    "compileOnSave": false,
    "exclude": [
        "node_modules"
    ],
    "awesomeTypescriptLoaderOptions": {
        "useWebpackText": true
    }
}

下面是我的webpack配置文件:

/**
 * 开发环境webpack配置
 */
const path = require('path');

module.exports = {
    entry: {
        app: './src/main.ts',
    },
    output: {
        path: path.join(__dirname, 'build'),
        filename: '[name].bundle.js'
    },
    resolve: {
        extensions: ['', '.ts', '.js', '.json']
    },
    module: {
        loaders: [
            {
                test: /\.ts$/,
                loaders: ['awesome-typescript-loader', 'angular2-template-loader'],
                exclude: /(node_modules | libs)/
            },
            {
                test: /.less$/,
                loader: 'less',
                exclude: /(node_modules | libs)/
            },
            {
                test: /.html$/,
                loader: 'raw-loader'
            }
        ]
    }
}

解决方案

原因
awesome-typescript-loader 最新的2.x的版本,只兼容 typescript 2.x的版本(目前正式版只到1.8)。


解决办法:
方案一: 升级 typescript 到预览版

npm i typescript@next --save-dev

方案二: 使用awesome-typescript-loader 的1.x的版本

npm i awesome-typescript-loader@1.1.1 --save-dev

这篇关于angular.js - webpack+angular2引入awesome-typescript-loader报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆