构建具有轻量级NPM依赖项的angularjs应用程序的正确方法是什么?

构建具有轻量级NPM依赖项的angularjs应用程序的正确方法是什么?,angularjs,npm,gulp,Angularjs,Npm,Gulp,我正在开发一个angularjs应用程序。我正在使用npm下载JS依赖项。 因此,我的所有依赖项都位于我的应用程序的node\u modules文件夹中。这很好用 我现在想交付我的应用程序,但是node\u modules文件夹很大~30M,有很多我不在乎的沉重文件。 我的应用程序只是包含了js文件的简化版本,例如node\u modules/chart.js/dist/chart.min.js 因此,我想知道如何继续构建我的应用程序,仅使用缩小的js文件来获得轻量级构建 在我的例子中,我只关心

我正在开发一个angularjs应用程序。我正在使用npm下载JS依赖项。 因此,我的所有依赖项都位于我的应用程序的
node\u modules
文件夹中。这很好用

我现在想交付我的应用程序,但是
node\u modules
文件夹很大~30M,有很多我不在乎的沉重文件。 我的应用程序只是包含了js文件的简化版本,例如
node\u modules/chart.js/dist/chart.min.js

因此,我想知道如何继续构建我的应用程序,仅使用缩小的js文件来获得轻量级构建

在我的例子中,我只关心js文件的缩小版本。 我不知道这是否可能,或者我应该朝哪个方向挖掘


我已经在我的项目中使用gulp来自动执行任务,如果有一种“gulp”方法可以做到这一点,那就太好了。

您可以运行两个新的gulp任务 第一个将把所有节点js文件复制到目标目标。 第二个将把js文件连接并缩小为一个文件

var concat = require('gulp-concat');  
var rename = require('gulp-rename');  
var uglify = require('gulp-uglify'); 

var dest = 'destination/';
var concatSource = dest;
var concatDest = 'dist/scripts/'

gulp.task('copy-minified', [], function() {

    var paths = [
        [
            'node_modules/**/*.js'
        ]
    ];

    paths.forEach(function(path) {

        gulp.src(path)
            .pipe(
                gulp.dest(dest)
            );

    });

});

gulp.task('concatenate-into-on-file-and-minify', function() {  
    return gulp.src(concatSource)
        .pipe(concat('scripts.js'))
        .pipe(gulp.dest(concatDest))
        .pipe(rename('scripts.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest(concatDest));
});

您可以运行两个新的“吞咽”任务 第一个将把所有节点js文件复制到目标目标。 第二个将把js文件连接并缩小为一个文件

var concat = require('gulp-concat');  
var rename = require('gulp-rename');  
var uglify = require('gulp-uglify'); 

var dest = 'destination/';
var concatSource = dest;
var concatDest = 'dist/scripts/'

gulp.task('copy-minified', [], function() {

    var paths = [
        [
            'node_modules/**/*.js'
        ]
    ];

    paths.forEach(function(path) {

        gulp.src(path)
            .pipe(
                gulp.dest(dest)
            );

    });

});

gulp.task('concatenate-into-on-file-and-minify', function() {  
    return gulp.src(concatSource)
        .pipe(concat('scripts.js'))
        .pipe(gulp.dest(concatDest))
        .pipe(rename('scripts.min.js'))
        .pipe(uglify())
        .pipe(gulp.dest(concatDest));
});

好的,谢谢你的提示,但这不会在所有情况下都起作用,因为我的一些节点模块(如doe)没有附带缩小的js文件。@ben.IT我修改了我的答案。现在,我复制未缩小的js文件,将它们连接起来,然后缩小它们。注意,如果我们这样做,这将占用所有的.js文件,比如gruntfile.js,这不是预期的。但受你的启发,我在gulpfile的开头列出了一个数组,我的应用程序的依赖项由一个连接到一起的gulp任务连接在一个文件中,该任务连接在一起并使用uglify。好的,谢谢你的提示,但这不会在所有情况下都起作用,因为我的一些节点模块(例如,没有附带缩小的js文件)。@ben.IT我修改了我的答案。现在,我复制未缩小的js文件,将它们连接起来,然后缩小它们。注意,如果我们这样做,这将占用所有的.js文件,比如gruntfile.js,这不是预期的。但受你线索的启发,我在gulpfile开头的数组中列出了我的应用程序的依赖项,这些依赖项通过一个连接到一起的gulp任务连接在一个文件中,并且是丑陋的。