angular.js - webpack+angular2引入awesome-typescript-loader报错
过去多啦不再A梦
过去多啦不再A梦 2017-05-15 17:06:11
0
2
771

原来用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'
            }
        ]
    }
}
过去多啦不再A梦
过去多啦不再A梦

Antworte allen(2)
世界只因有你

原因
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
小葫芦

已经找到解决方案,需要更新下typescript到最新版本即可。

npm install typescript@next --save-dev

参考:
https://github.com/s-panferov/awesome-typescript-loader/issues/179

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage