将我的gulpfile包装在一个立即调用的函数表达式中

sfl*_*che 5 javascript iife gulp

看着我的gulpfile,我才意识到我必须在全局范围内声明我的所有变量.

我的gulpfile看起来非常典型(与不同),var在文件顶部声明了一堆s.

var gulp = require('gulp');
var browserify = require('gulp-browserify');
var concat = require('gulp-concat');
var less = require('gulp-less');
var refresh = require('gulp-livereload');
var minifyCSS = require('gulp-minify-css');
Run Code Online (Sandbox Code Playgroud)

但这告诉我,var文件顶部的所有这些都只是被打到了全局对象上.

我傻了吗?我应该将我的gulpfile包装在IIFE中吗?

如果是这样,为什么我没有在网上任何地方看到IIFE内的gulpfile示例?

Zhe*_*gan 3

gulpfile 在节点中运行,而不是在浏览器中运行。在浏览器中,这些变量将被定义为全局变量。在节点中这是不同的。直接来自文档

顶级作用域不是全局作用域;var Node 模块内的某些内容将是该模块的本地内容

所以在gulpfile中定义不带IIFE的变量是可以的