首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular2 Webpack懒散加载TypeError:无法将未定义或null转换为对象

Angular2 Webpack懒散加载TypeError:无法将未定义或null转换为对象
EN

Stack Overflow用户
提问于 2017-01-15 17:26:43
回答 1查看 754关注 0票数 4

我对棱角路由器加载器有意见,

当我想下载一个模块的时候,我会遵循我看到的每一条准则,

我一直收到这样的错误:TypeError: Cannot convert undefined or null to object

这是我的webpack.config.common.js

代码语言:javascript
复制
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: {
        'app': './app/main.ts'
    },
    resolve: {
        extensions: ['.js', '.ts']
    },

    module: {
        loaders: [
            {
                test: /\.ts$/,
                loaders: [
                    'awesome-typescript-loader',
                    'angular2-template-loader',
                    'angular-router-loader'
                ]
            },
            {
                test: /\.html$/,
                loader: 'html-loader'
            },
            {
                test: /\.css$/,
                loader: 'raw-loader'
            }
        ]
    },

    plugins: [
        new HtmlWebpackPlugin({
            template: 'index.html'
        }),
        new webpack.ContextReplacementPlugin(
            // The (\\|\/) piece accounts for path separators in *nix and windows
            /angular(\\|\/)core(\\|\/)(esm(\\|\/)src|src)(\\|\/)linker/,
            './app' // location of the src
        )
    ]
};

这是app.routing.ts

代码语言:javascript
复制
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

const appRoutes: Routes = [
    {
        path: '',
        redirectTo: '/dashboard',
        pathMatch: 'full'
    },
    {
        path: 'dashboard',
        loadChildren: './dashboard/dashboard.module#DashboardModule'
    }
];

export const appRoutingProviders: any[] = [

];

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);

这是dashboard/dashboard.module

代码语言:javascript
复制
import { NgModule }       from '@angular/core';
import { CommonModule }   from '@angular/common';
import { FormsModule }    from '@angular/forms';

import { DashboardComponent }    from './dashboard.component';

import { dashboardRouting } from './dashboard.routing';

@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        dashboardRouting
    ],
    declarations: [
        DashboardComponent
    ],
    providers: [
    ]
})
export class DashboardModule {}

下面是我的依赖关系:

代码语言:javascript
复制
"devDependencies": {
    "@types/core-js": "^0.9.35",
    "@types/hammerjs": "^2.0.34",
    "@types/jasmine": "^2.5.38",
    "@types/node": "^6.0.53",
    "angular-router-loader": "^0.5.0",
    "angular2-template-loader": "^0.6.0",
    "awesome-typescript-loader": "^3.0.0-beta.18",
    "del-cli": "^0.2.1",
    "html-loader": "^0.4.4",
    "html-webpack-plugin": "^2.26.0",
    "lite-server": "^2.2.2",
    "raw-loader": "^0.5.1",
    "webpack": "^2.2.0-rc.4",
    "webpack-dev-server": "^2.2.0-rc.0",
    "webpack-merge": "^2.4.0"
  }

我做错什么了?

EN

回答 1

Stack Overflow用户

发布于 2017-03-24 10:18:51

试着进口

代码语言:javascript
复制
import { RouterModule } from '@angular/router';
import { <children routes of dashboard> } from '<path of dashboard child routes>';

,然后将其放在DashboardModule的NgModule导入区域中。

代码语言:javascript
复制
@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        dashboardRouting
    ],
    declarations: [
        DashboardComponent
    ],
    imports: [
        RouterModule.forChild(<children routes of dashboard>)
    ]
})
export class DashboardModule {}

请用必要的详细信息替换<>部件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41664070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档