2017-05-05 43 views
0

我正在開發一個angularjs應用程序。我正在使用npm下載JS依賴項。 因此,我所有的依賴關係都位於我應用程序的node_modules文件夾中。這工作正常。什麼是正確的方式來建立與ligthweight NPM依賴關係的angularjs應用程序?

我想現在提供我的應用程序,但node_modules文件夾是巨大的~30M,並有很多沉重的文件,我不在乎。 我的應用程序只包括js文件的縮小版本,例如node_modules/chart.js/dist/Chart.min.js

所以,我不知道如何繼續構建我的應用程序只有使用縮小的js文件來獲得輕量級構建?

就我而言,我只關心js文件的縮小版本。 我不知道是否可能或我應該挖掘哪個方向?

我已經在我的項目中使用gulp來自動執行任務,如果有「吞噬」方式來完成這個任務,這將非常棒。

回答

0

您可以運行兩個新的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)); 
}); 
+0

好的,感謝您的提示,但這不會在所有情況下工作,因爲我的一些NODE模塊,如[this one](https://github.com/isteven/angular-multi-select )doe沒有帶有縮小的js文件。 –

+0

@ ben.IT我修改了我的答案。現在我複製非縮小的js文件連接它們,然後縮小它們。 問候, –

+1

如果我們這樣做,這將採取所有的.js文件,如gruntfile.js,這不是預期的。但受你的線索的啓發,我在我的大文件開頭列出了一個數組,我的應用程序的依賴關係通過一個連接和uglify的吞嚥任務連接在一個文件中。 –

相關問題