在许多地方,专业人士似乎正在使用涉及gulp或grunt的node.js脚本来构建他们的项目。我能解释的是,为什么脚本方法更受欢迎?从命令行版本切换到脚本版本时,您可以添加其他软件包:gulp-uglify,vinyl-source-stream和vinyl-buffer。使用具有最少依赖性的方法不会长期更安全吗?以我目前使用的以下命令行方法为例:
browserify entry.js | uglifyjs > bundle.js
这依赖于browserify和uglifyjs,而且我没有额外的gulp,gulp-uglifyjs等依赖...而且我不必担心gulp-uglifyjs相对的版本在npm的直接uglifyjs。现在看到以下版本:
var browserify = require('browserify');
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
var buffer = require('vinyl-buffer');
gulp.task('browserify', function() {
return browserify('./source/scripts/app.js')
.bundle()
.pipe(source('bundle.js')) // gives streaming vinyl file object
.pipe(buffer()) // <----- convert from streaming to buffered vinyl file object
.pipe(uglify()) // now gulp-uglify works
.pipe(gulp.dest('./build/scripts'));
});
它似乎更加复杂,但出于什么原因,这将是一个更有效和更安全的方式来构建一个JavaScript项目?感谢。
答案 0 :(得分:2)
不是。命令行仍然是最安全的方式。并且npm
默认情况下会构建此类脚本。人们使用gulp
或grunt
或Continuous Integration
的其他此类构建工具。 Uglify
只是出于制作目的而只需要一次,但是您希望每次更改一个文件时都要运行tests
,或者想要使用JSLint
。好吧,我知道其中许多插件都提供Continous Integration
支持,但并非所有插件都支持Gulp
。 gulp
,`Grunt```和其他类似的构建工具都带有开箱即用的解决方案。
但是我看到越来越多的人从grunt
,npm
转到基本platforms
,我完全支持这一运动。