不要将Angular2复制到lib-npm

时间:2016-12-05 16:22:05

标签: visual-studio angular gulp

我遵循本教程。 http://www.c-sharpcorner.com/article/using-mvc-6-and-angularjs-2-with-net-core/

我已经到了使用gulp将文件复制到lib-npm文件夹的问题。所有预期的文件都复制除了角度。我没有收到任何错误消息,文件就在那里。

这是我的gulp文件

/// <binding />
/* 
This file in the main entry point for defining Gulp tasks and using Gulp plugins. 
Click here to learn more. http://go.microsoft.com/fwlink/?LinkId=518007 
*/
"use strict";
var gulp = require("gulp");
var root_path = {
    webroot: "./wwwroot/"
};
//library source  
root_path.nmSrc = "./node_modules/";
//library destination  
root_path.package_lib = root_path.webroot + "lib-npm/";
gulp.task("copy-systemjs", function () {
    return gulp.src(root_path.nmSrc + '/systemjs/dist/**/*.*', {
        base: root_path.nmSrc + '/systemjs/dist/'
    }).pipe(gulp.dest(root_path.package_lib + '/systemjs/'));
});
gulp.task("copy-angular2", function () {
    return gulp.src(root_path.nmSrc + '/angular2/bundles/**/*.js', {
        base: root_path.nmSrc + '/angular2/bundles/'
    }).pipe(gulp.dest(root_path.package_lib + '/angular2/'));
});
gulp.task("copy-es6-shim", function () {
    return gulp.src(root_path.nmSrc + '/es6-shim/es6-sh*', {
        base: root_path.nmSrc + '/es6-shim/'
    }).pipe(gulp.dest(root_path.package_lib + '/es6-shim/'));
});
gulp.task("copy-rxjs", function () {
    return gulp.src(root_path.nmSrc + '/rxjs/bundles/*.*', {
        base: root_path.nmSrc + '/rxjs/bundles/'
    }).pipe(gulp.dest(root_path.package_lib + '/rxjs/'));
});
gulp.task("copy-all", ["copy-rxjs", 'copy-angular2', 'copy-systemjs', 'copy-es6-shim']);

我还注意到我项目中的。\ node_modules \ Angular2文件夹中没有.js文件。这是正常的吗?

Angular2版本是1.0.2

我在构建时收到以下错误,因为文件丢失

Cannot find name 'Component'.
Build:Cannot find module 'angular2/core'.
Build:Cannot find module 'angular2/platform/browser'.
Build:Cannot find name 'Component'.
Cannot find module 'angular2/core'.
Cannot find module 'angular2/platform/browser'

1 个答案:

答案 0 :(得分:1)

我建议您每次构建应用时都不要复制node_modules。您可以轻松修改UseStaticFiles类中的Startup.cs中间件,如here所述。通过这样做,node_modules保持原样,您不需要反复复制它们。

顺便说一下。最近(切换到UseStatisFiles修改之前)我在Gulp中也做了同样的事情,以下情况也很好:

gulp.task('build-angular-js', function () {
    return gulp.src(paths.angularJs)
        .pipe(cache('linting'))
        .pipe(gulp.dest(paths.jsNgDest));
});

.. paths等于:

var paths = {
    webroot: "./wwwroot/",
    angularJs: [
        "./node_modules/core-js/client/shim.min.js",
        "./node_modules/zone.js/dist/zone.js",
        "./node_modules/reflect-metadata/Reflect.js",
        "./node_modules/systemjs/dist/system.src.js",
        "./App/External/systemjs.config.js",

        "./node_modules/@angular/**/*.js",
        "./node_modules/rxjs/**/*.js"
    ],
    appJs: [
        "./App/App/**/*.js"
    ]
};
paths.jsDest = paths.webroot + "app";
paths.jsNgDest = paths.webroot + "app";

可以在GitHub上找到完整的模板和所有来源,包括gulpfile.js。请注意cache是一个gulp插件,可以避免复制未修改的文件。如上所述 - 最好避免复制node_modules