Angular2 Webpack 延迟加载类型错误 : Cannot convert undefined or null to object

标签 angular webpack-2

我在使用 angular-router-loader 时遇到问题,
在我想延迟加载模块的地方,我遵循我看到的每条指南,
我不断收到此错误:TypeError: Cannot convert undefined or null to object:

The error

这是我的webpack.config.common.js

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

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:

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 {}

这是我的依赖项:

"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"
  }

我做错了什么?

最佳答案

尝试导入

import { RouterModule } from '@angular/router';
import { <children routes of dashboard> } from '<path of dashboard child routes>';

在您的dashboard/dashboard.module 中,然后将其放在DashboardModule 的NgModule 导入区域

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

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

关于Angular2 Webpack 延迟加载类型错误 : Cannot convert undefined or null to object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41664070/

相关文章:

ios - ionic2 cordova 文件传输插件超时错误代码 3

reactjs - 如何确认 Tree Shaking 是否适用于 Webpack 2?

javascript - 从 Webpack 1 迁移到 Webpack 2

javascript - 使用 webpack 定义全局变量

javascript - 如何在控制台中需要 React 组件

angular - 如何根据 Angular 2 中的条件重定向到特定路由。

angular - 如何正确取消订阅这种可观察的

node.js - 下载响应 angular2 中发送的文件

angular - 设置 IIS10 以提供预压缩文件

javascript - 如何读取 Javascript 中的 Less 变量?