Skip to content

Commit 8a1e396

Browse files
authored
Remove negative lookbehind from Rollup plugin that broke Node <= v8.9 (facebook#13538)
1 parent 9604d26 commit 8a1e396

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

scripts/rollup/plugins/strip-unused-imports.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,22 @@
66
*/
77
'use strict';
88

9-
module.exports = function sizes(pureExternalModules) {
9+
module.exports = function stripUnusedImports(pureExternalModules) {
1010
return {
1111
name: 'scripts/rollup/plugins/strip-unused-imports',
1212
transformBundle(code) {
1313
pureExternalModules.forEach(module => {
14+
// Ideally this would use a negative lookbehind: (?<!= *)
15+
// But this isn't supported by the Node <= 8.9.
16+
// So instead we try to handle the most common cases:
17+
// 1. foo,bar=require("bar"),baz
18+
// 2. foo;bar = require('bar');baz
19+
// 3. require('bar');
1420
const regExp = new RegExp(
15-
`(?<!= *)require\\(["']${module}["']\\)[,;]`,
21+
`([,;]| {2})require\\(["']${module}["']\\)[,;]`,
1622
'g'
1723
);
18-
code = code.replace(regExp, '');
24+
code = code.replace(regExp, '$1');
1925
});
2026
return {code};
2127
},

0 commit comments

Comments
 (0)