@samitouri / QOS-React / commits / 8a1e3962ab

Remove negative lookbehind from Rollup plugin that broke Node <= v8.9 (#13538)

Brian Vaughn committed Sep 2, 2018 at 17:59 UTC 8a1e3962ab189b99b1593d8431feabcb4a21211b
1 file changed +9 -3
scripts/rollup/plugins/strip-unused-imports.js
+9 -3
@@ -6,16 +6,22 @@
6 */
7 'use strict';
8
9 -module.exports = function sizes(pureExternalModules) {
9 +module.exports = function stripUnusedImports(pureExternalModules) {
10 return {
11 name: 'scripts/rollup/plugins/strip-unused-imports',
12 transformBundle(code) {
13 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');
20 const regExp = new RegExp(
15 - `(?<!= *)require\\(["']${module}["']\\)[,;]`,
21 + `([,;]| {2})require\\(["']${module}["']\\)[,;]`,
22 'g'
23 );
18 - code = code.replace(regExp, '');
24 + code = code.replace(regExp, '$1');
25 });
26 return {code};
27 },