Не удается разрешить модуль Ошибка при первоначальной настройке TypeScript 2 / Angular 2 / Webpack 2
Я пытаюсь настроить проект TypeScript Angular Webpack в первый раз, но меня обрушила лавина ошибок, которые мне нужна помощь для устранения.
Я пытался сравнить свой проект с проектом angular-cli, но я просто не вижу, чего не хватает.
Я пробовал понизить машинопись, @angular модули и веб-пакет; нет радости Я использовал определенные версии пакетов, потому что мы делаем это на работе для стабильности.
Это больше похоже на проблему, когда ts-loader нужно указывать, где искать вещи, так как само приложение просто шаблон.
В tsconfig некоторые настройки отсутствуют, потому что в документации tsconfig.json сказано, что они по умолчанию, например target = es5, module = commonjs, но я счастлив попробовать что угодно. Другие там, потому что я хотел посмотреть, что они сделали; Я счастлив бросить их тоже, если это необходимо.
Ниже я включил (a) образец полученных ошибок (b) package.json, (c) tsconfig.json и (d) webpack.config.js (e) main.ts
Примеры ошибок:
ERROR in ./~/@angular/platform-browser-dynamic/index.js
Module not found: Error: Can't resolve './src/platform-browser-dynamic' in '/Users/Ian/Desktop/TestFolder/Bare/node_modules/@angular/platform-browser-dynamic'
@ ./~/@angular/platform-browser-dynamic/index.js 13:0-47
@ ./src/main.ts
ERROR in ./~/@angular/platform-browser/index.js
Module not found: Error: Can't resolve './src/platform-browser' in '/Users/Ian/Desktop/TestFolder/Bare/node_modules/@angular/platform-browser'
@ ./~/@angular/platform-browser/index.js 13:0-295
@ ./src/app/app.module.ts
@ ./src/main.ts
ERROR in ./~/@angular/forms/index.js
Module not found: Error: Can't resolve './src/forms' in '/Users/Ian/Desktop/TestFolder/Bare/node_modules/@angular/forms'
@ ./~/@angular/forms/index.js 13:0-709
@ ./src/app/app.module.ts
@ ./src/main.ts
ERROR in ./~/@angular/core/index.js
Module not found: Error: Can't resolve './src/core' in '/Users/Ian/Desktop/TestFolder/Bare/node_modules/@angular/core'
@ ./~/@angular/core/index.js 13:0-2208
@ ./src/app/app.module.ts
@ ./src/main.ts
ERROR in ./~/@angular/http/index.js
Module not found: Error: Can't resolve './src/index' in '/Users/Ian/Desktop/TestFolder/Bare/node_modules/@angular/http'
@ ./~/@angular/http/index.js 13:0-406
@ ./src/app/app.module.ts
@ ./src/main.ts
package.json
{
"name": "BareNg2",
"version": "1.0.0",
"main": "index.js",
"repository": {},
"license": "MIT",
"scripts": {
"w": "webpack"
},
"dependencies": {
"@angular/common": "2.4.5",
"@angular/compiler": "2.4.5",
"@angular/core": "2.4.5",
"@angular/forms": "2.4.5",
"@angular/http": "2.4.5",
"@angular/platform-browser": "2.4.5",
"@angular/platform-browser-dynamic": "2.4.5",
"@angular/router": "3.4.6",
"core-js": "2.4.1",
"rxjs": "5.1.0",
"zone.js": "0.7.6"
},
"devDependencies": {
"@types/node": "7.0.4",
"ts-loader": "^2.0.0",
"typescript": "2.0.10",
"webpack": "2.1.0-beta.28",
"webpack-dev-middleware": "1.10.0",
"webpack-dev-server": "1.16.3"
}
}
tsconfig.json
{
"compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": [ "es6", "dom" ],
"listFiles": true,
"noImplicitAny": true,
"pretty": true,
"strictNullChecks": true,
"target": "ES5",
"traceResolution": true,
"typeRoots": [ "./node_modules/@types" ]
}
}
webpack.config.js
'use strict';
const webpack = require('webpack');
const path = require('path');
module.exports = {
entry: {
app: './src/main.ts'
},
output: {
path: './dist',
filename: '[name].bundle.js'
},
resolve: {
extensions: [ '.ts' ]
},
module: {
rules: [
{
test: /\.ts$/,
loader: 'ts-loader',
options: {
visualStudioErrorFormat: true
}
}
]
}
}
/src/main.ts
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule);
/src/app/app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }