Skip to content
This repository was archived by the owner on Feb 6, 2023. It is now read-only.

Commit 85ad25c

Browse files
mrkevfacebook-github-bot
authored andcommitted
Upgrade to Gulp 4 (fixes build) (#1957)
Summary: Fixed the build-- it was broken from using Gulp 3 on Node 10: nodejs/node#19786 Pull Request resolved: #1957 Reviewed By: pakoito Differential Revision: D13433181 Pulled By: pakoito fbshipit-source-id: 0f224a3ff92e1cc6abdbd4cec88a5742f9d3ff9a
1 parent 83edf02 commit 85ad25c

File tree

5 files changed

+1557
-414
lines changed

5 files changed

+1557
-414
lines changed

gulpfile.js

Lines changed: 146 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ var gulpUtil = require('gulp-util');
2121
var header = require('gulp-header');
2222
var packageData = require('./package.json');
2323
var rename = require('gulp-rename');
24-
var runSequence = require('run-sequence');
2524
var StatsPlugin = require('stats-webpack-plugin');
2625
var through = require('through2');
2726
var UglifyJsPlugin = require('uglifyjs-webpack-plugin');
@@ -127,118 +126,153 @@ var buildDist = function(opts) {
127126
});
128127
};
129128

130-
gulp.task('clean', function() {
131-
return del([paths.dist, paths.lib]);
132-
});
133-
134-
gulp.task('modules', function() {
135-
return gulp
136-
.src(paths.src)
137-
.pipe(babel(babelOptsJS))
138-
.pipe(flatten())
139-
.pipe(gulp.dest(paths.lib));
140-
});
141-
142-
gulp.task('flow', function() {
143-
return gulp
144-
.src(paths.src)
145-
.pipe(babel(babelOptsFlow))
146-
.pipe(flatten())
147-
.pipe(rename({extname: '.js.flow'}))
148-
.pipe(gulp.dest(paths.lib));
149-
});
150-
151-
gulp.task('css', function() {
152-
return (gulp
153-
.src(paths.css)
129+
gulp.task(
130+
'clean',
131+
gulp.series(function() {
132+
return del([paths.dist, paths.lib]);
133+
}),
134+
);
135+
136+
gulp.task(
137+
'modules',
138+
gulp.series(function() {
139+
return gulp
140+
.src(paths.src)
141+
.pipe(babel(babelOptsJS))
142+
.pipe(flatten())
143+
.pipe(gulp.dest(paths.lib));
144+
}),
145+
);
146+
147+
gulp.task(
148+
'flow',
149+
gulp.series(function() {
150+
return gulp
151+
.src(paths.src)
152+
.pipe(babel(babelOptsFlow))
153+
.pipe(flatten())
154+
.pipe(rename({extname: '.js.flow'}))
155+
.pipe(gulp.dest(paths.lib));
156+
}),
157+
);
158+
159+
gulp.task(
160+
'css',
161+
gulp.series(function() {
162+
return (
163+
gulp
164+
.src(paths.css)
165+
.pipe(
166+
through.obj(function(file, encoding, callback) {
167+
var contents = file.contents.toString();
168+
var replaced = contents.replace(
169+
// Regex based on MakeHasteCssModuleTransform: ignores comments,
170+
// strings, and URLs
171+
/\/\*.*?\*\/|'(?:\\.|[^'])*'|"(?:\\.|[^"])*"|url\([^)]*\)|(\.(?:public\/)?[\w-]*\/{1,2}[\w-]+)/g,
172+
function(match, cls) {
173+
if (cls) {
174+
return cls.replace(/\//g, '-');
175+
} else {
176+
return match;
177+
}
178+
},
179+
);
180+
replaced = replaced.replace(
181+
// MakeHasteCssVariablesTransform
182+
/\bvar\(([\w-]+)\)/g,
183+
function(match, name) {
184+
var vars = {
185+
'fig-secondary-text': '#9197a3',
186+
'fig-light-20': '#bdc1c9',
187+
};
188+
if (vars[name]) {
189+
return vars[name];
190+
} else {
191+
throw new Error('Unknown CSS variable ' + name);
192+
}
193+
},
194+
);
195+
file.contents = Buffer.from(replaced);
196+
callback(null, file);
197+
}),
198+
)
199+
.pipe(concatCSS('Draft.css'))
200+
// Avoid rewriting rules *just in case*, just compress
201+
.pipe(cleanCSS({advanced: false}))
202+
.pipe(header(COPYRIGHT_HEADER, {version: packageData.version}))
203+
.pipe(gulp.dest(paths.dist))
204+
);
205+
}),
206+
);
207+
208+
gulp.task(
209+
'dist',
210+
gulp.series('modules', 'css', function() {
211+
var opts = {
212+
debug: true,
213+
output: 'Draft.js',
214+
};
215+
return gulp
216+
.src('./lib/Draft.js')
217+
.pipe(buildDist(opts))
218+
.pipe(derequire())
154219
.pipe(
155-
through.obj(function(file, encoding, callback) {
156-
var contents = file.contents.toString();
157-
var replaced = contents.replace(
158-
// Regex based on MakeHasteCssModuleTransform: ignores comments,
159-
// strings, and URLs
160-
/\/\*.*?\*\/|'(?:\\.|[^'])*'|"(?:\\.|[^"])*"|url\([^)]*\)|(\.(?:public\/)?[\w-]*\/{1,2}[\w-]+)/g,
161-
function(match, cls) {
162-
if (cls) {
163-
return cls.replace(/\//g, '-');
164-
} else {
165-
return match;
166-
}
167-
},
168-
);
169-
replaced = replaced.replace(
170-
// MakeHasteCssVariablesTransform
171-
/\bvar\(([\w-]+)\)/g,
172-
function(match, name) {
173-
var vars = {
174-
'fig-secondary-text': '#9197a3',
175-
'fig-light-20': '#bdc1c9',
176-
};
177-
if (vars[name]) {
178-
return vars[name];
179-
} else {
180-
throw new Error('Unknown CSS variable ' + name);
181-
}
182-
},
183-
);
184-
file.contents = Buffer.from(replaced);
185-
callback(null, file);
186-
}),
220+
gulpif(
221+
'*.js',
222+
header(COPYRIGHT_HEADER, {version: packageData.version}),
223+
),
187224
)
188-
.pipe(concatCSS('Draft.css'))
189-
// Avoid rewriting rules *just in case*, just compress
190-
.pipe(cleanCSS({advanced: false}))
191-
.pipe(header(COPYRIGHT_HEADER, {version: packageData.version}))
192-
.pipe(gulp.dest(paths.dist)) );
193-
});
194-
195-
gulp.task('dist', ['modules', 'css'], function() {
196-
var opts = {
197-
debug: true,
198-
output: 'Draft.js',
199-
};
200-
return gulp
201-
.src('./lib/Draft.js')
202-
.pipe(buildDist(opts))
203-
.pipe(derequire())
204-
.pipe(
205-
gulpif('*.js', header(COPYRIGHT_HEADER, {version: packageData.version})),
206-
)
207-
.pipe(gulp.dest(paths.dist));
208-
});
209-
210-
gulp.task('dist:min', ['modules'], function() {
211-
var opts = {
212-
debug: false,
213-
output: 'Draft.min.js',
214-
};
215-
return gulp
216-
.src('./lib/Draft.js')
217-
.pipe(buildDist(opts))
218-
.pipe(
219-
gulpif('*.js', header(COPYRIGHT_HEADER, {version: packageData.version})),
220-
)
221-
.pipe(gulp.dest(paths.dist));
222-
});
223-
224-
gulp.task('check-dependencies', function() {
225-
return gulp.src('package.json').pipe(gulpCheckDependencies());
226-
});
227-
228-
gulp.task('watch', function() {
229-
gulp.watch(paths.src, ['modules']);
230-
});
231-
232-
gulp.task('dev', function() {
233-
gulp.watch(paths.src, ['modules', 'dist']);
234-
});
235-
236-
gulp.task('default', function(cb) {
237-
runSequence(
225+
.pipe(gulp.dest(paths.dist));
226+
}),
227+
);
228+
229+
gulp.task(
230+
'dist:min',
231+
gulp.series('modules', function() {
232+
var opts = {
233+
debug: false,
234+
output: 'Draft.min.js',
235+
};
236+
return gulp
237+
.src('./lib/Draft.js')
238+
.pipe(buildDist(opts))
239+
.pipe(
240+
gulpif(
241+
'*.js',
242+
header(COPYRIGHT_HEADER, {version: packageData.version}),
243+
),
244+
)
245+
.pipe(gulp.dest(paths.dist));
246+
}),
247+
);
248+
249+
gulp.task(
250+
'check-dependencies',
251+
gulp.series(function() {
252+
return gulp.src('package.json').pipe(gulpCheckDependencies());
253+
}),
254+
);
255+
256+
gulp.task(
257+
'watch',
258+
gulp.series(function() {
259+
gulp.watch(paths.src, ['modules']);
260+
}),
261+
);
262+
263+
gulp.task(
264+
'dev',
265+
gulp.series(function() {
266+
gulp.watch(paths.src, ['modules', 'dist']);
267+
}),
268+
);
269+
270+
gulp.task(
271+
'default',
272+
gulp.series(
238273
'check-dependencies',
239274
'clean',
240-
['modules', 'flow'],
241-
['dist', 'dist:min'],
242-
cb,
243-
);
244-
});
275+
gulp.parallel('modules', 'flow'),
276+
gulp.parallel('dist', 'dist:min'),
277+
),
278+
);

meta/bundle-size-stats/Draft.js.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

meta/bundle-size-stats/Draft.min.js.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
"eslint-plugin-relay": "^0.0.8",
6161
"fbjs-scripts": "^0.8.0",
6262
"flow-bin": "^0.70.0",
63-
"gulp": "^3.9.0",
63+
"gulp": "^4.0.0",
6464
"gulp-babel": "^6.1.2",
6565
"gulp-browserify-thin": "^0.1.5",
6666
"gulp-clean-css": "^2.0.3",
@@ -77,7 +77,6 @@
7777
"react": "^16.0.0",
7878
"react-dom": "^16.0.0",
7979
"react-test-renderer": "^16.0.0",
80-
"run-sequence": "^1.1.2",
8180
"stats-webpack-plugin": "^0.6.2",
8281
"through2": "^2.0.1",
8382
"uglifyjs-webpack-plugin": "^1.1.6",

0 commit comments

Comments
 (0)