From 157a77e48dde7a44b9d24fc4f38b4147a6017df3 Mon Sep 17 00:00:00 2001 From: Joe Wood Date: Fri, 26 Jun 2015 16:18:49 -0700 Subject: [PATCH] [Packager] Windows support for Packager - Blacklist changes Summary: Another Pull Request implementing the changes in issue #468 - Enabled Packager to run on Windows This change relates to the blacklist fixes. It includes the path conversion for blacklist and changes to the default watched directory. It has no impact on Mac OSX. Closes https://github.com/facebook/react-native/pull/893 Github Author: Joe Wood Test Plan: Imported from GitHub, without a `Test Plan:` line. --- blacklist.js | 6 +++++- packager.js | 8 +++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/blacklist.js b/blacklist.js index af2e2879..237691a8 100644 --- a/blacklist.js +++ b/blacklist.js @@ -8,6 +8,8 @@ */ 'use strict'; +var path = require('path'); + // Don't forget to everything listed here to `testConfig.json` // modulePathIgnorePatterns. var sharedBlacklist = [ @@ -39,7 +41,9 @@ var platformBlacklists = { }; function escapeRegExp(str) { - return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); + var escaped = str.replace(/[\-\[\]\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); + // convert the '/' into an escaped local file separator + return escaped.replace(/\//g,'\\' + path.sep); } function blacklist(platform, additionalBlacklist) { diff --git a/packager.js b/packager.js index d179617c..ff0faa31 100644 --- a/packager.js +++ b/packager.js @@ -69,8 +69,9 @@ if (options.projectRoots) { options.projectRoots = options.projectRoots.split(','); } } else { - if (__dirname.match(/node_modules\/react-native\/packager$/)) { - // packager is running from node_modules of another project + // match on either path separator + if (__dirname.match(/node_modules[\/\\]react-native[\/\\]packager$/)) { + // packager is running from node_modules of another project options.projectRoots = [path.resolve(__dirname, '../../..')]; } else if (__dirname.match(/Pods\/React\/packager$/)) { // packager is running from node_modules of another project @@ -97,7 +98,8 @@ if (options.assetRoots) { }); } } else { - if (__dirname.match(/node_modules\/react-native\/packager$/)) { + // match on either path separator + if (__dirname.match(/node_modules[\/\\]react-native[\/\\]packager$/)) { options.assetRoots = [path.resolve(__dirname, '../../..')]; } else if (__dirname.match(/Pods\/React\/packager$/)) { options.assetRoots = [path.resolve(__dirname, '../../..')];