2016-06-28 2 views
0

Так ошибка я получаю в браузере:Webpack ошибка после обновления до .NET ядра 1,0

bootstrap 050c815…:578Uncaught Error: Cannot find module "./app/main.ts"

и когда я пытаюсь запустить webpack из CMD я получаю

ERROR in ./app/main.ts
Module build failed: TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.dirname (path.js:697:5)
at ensureTypeScriptInstance (C:\Users\Me\Google Drive\TemplateProjects\CoreAngular2WebpackSass\src\CoreAngular2WebpackSass\node_modules\ts-loader\index.js:156:103)
at Object.loader (C:\Users\Me\Google Drive\TemplateProjects\CoreAngular2WebpackSass\src\CoreAngular2WebpackSass\node_modules\ts-loader\index.js:403:14)

Я прокомментировал почти все, что необходимо от приложения, но все еще получаю эту ошибку.

Я не уверен, как еще отладить эту проблему, она работала, когда я был на .NET Core RC 2, но допуск dos выглядел как проблема .net, которая заставляет меня думать, что это могло бы что-то испортить при копировании код более, но я не могу видеть

Вот мой webpack.config находится в корне

var path = require('path'); 
var webpack = require('webpack'); 
var merge = require('extendify')({ isDeep: true, arrays: 'concat' }); 
var ExtractTextPlugin = require('extract-text-webpack-plugin'); 
var extractCSS = new ExtractTextPlugin('styles.css'); 
var devConfig = require('./webpack.config.dev'); 
var prodConfig = require('./webpack.config.prod'); 
var isDevelopment = process.env.ASPNETCORE_ENVIRONMENT === 'Development'; 

//if (isDevelopment) { 
    module.exports = merge({ 
     resolve: { 
      extensions: ['', '.js', '.ts'] 
     }, 
     module: { 
      loaders: [ 
       { test: /\.ts$/, loader: 'ts-loader' }, 
       { test: /\.html$/, loader: 'raw-loader' }, 
       { test: /\.css$/, loader: "css-loader" } 
      ] 
     }, 
     entry: { 
      main: ['./app/main.ts'] 
     }, 
     output: { 
      path: 'wwwroot/dist/',//path.join(__dirname, 'wwwroot', 'dist'), 
      filename: '[name].js', 
      publicPath: '/dist/' 
     }, 
     plugins: [ 
      new webpack.DllReferencePlugin({ 
       context: __dirname, 
       manifest: require('./wwwroot/dist/vendor-manifest.json') 
      }) 
     ] 
    }, devConfig); 
//} 

main.ts, расположенного по адресу app/main.ts

import 'zone.js/dist/zone'; 
import 'reflect-metadata'; 

import { bootstrap } from '@angular/platform-browser-dynamic'; 
import { AppComponent } from './app.component'; 
//import { enableProdMode} from '@angular/core'; 
//import { APP_ROUTER_PROVIDER } from './app.routes'; 
//import { HTTP_PROVIDERS } from '@angular/http'; 
//import { disableDeprecatedForms, provideForms } from '@angular/forms'; 

//enableProdMode(); 
bootstrap(AppComponent, [ 
    //APP_ROUTER_PROVIDER, 
    //HTTP_PROVIDERS, 
    //disableDeprecatedForms(), 
    //provideForms() 
]); 

//Hot swapping 
//declare var module: any; 
//if (module.hot) { 
// module.hot.accept(); 
//} 

И мой app.component.ts расположен в app/app.component.ts

import { Component}  from '@angular/core'; 
//import { AppFooter}   from './shared/footer/footer.component' 
//import { ROUTER_DIRECTIVES } from '@angular/router'; 
//import { AccountService } from './services/account/account.service' 
//import './rxjs-operators'; 

@Component({ 
    selector: 'app', 
    template: 'hi',//require('./app.html'), 
    //directives: [AppFooter, ROUTER_DIRECTIVES], 
    // providers: [AccountService] 
}) 
export class AppComponent { 
} 

И, наконец, индекс, который служит все это: находится в Views/home/Index.cshtml, который по умолчанию страница будет подан приложением

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 
    <title>Home</title> 
    <base href="." /> 
    <link rel="stylesheet" href="~/dist/vendor.css" asp-append-version="true" /> 
    <link rel="stylesheet" href="~/dist/styles.css" asp-append-version="true" /> 
</head> 
<body> 
    <app asp-prerender-webpack-config="webpack.config.js">Loading...</app> 
    @*<script src="webpack.config.js" asp-append-version="true"> </script> *@ 
    <script src="~/dist/vendor.js" asp-append-version="true"></script>  
    <script src="~/dist/main.js" asp-append-version="true"></script> 

</body> 
</html> 

ответ

1

я имел такая же ошибка, и я нашел решение здесь: Fixing webpack error: Path must be a string. Received undefined

Решение заключается в создании tsconfig.json. Что-то вроде этого:

{ 
    "compilerOptions": { 
     "module": "commonjs", 
     "target": "es5", 
     "jsx": "react", 
     "sourceMap": true, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "outDir": "dist" 
    }, 
    "files": [ 
     "./typings/main.d.ts" 
    ] 
} 
+0

Ах да, полностью забыл скопировать это через lol, спасибо человеку – Toxicable

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