Skip to content

Commit c69a991

Browse files
committed
Separate rn-cli config for running from inside GB
1 parent dbcf911 commit c69a991

4 files changed

+57
-29
lines changed

extra-node-modules.config.js

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/** @format */
2+
const enm = require( 'node-libs-react-native' );
3+
enm.fs = __dirname + '/__mocks__/nodejsMock.js';
4+
enm.net = __dirname + '/__mocks__/nodejsMock.js';
5+
enm.canvas = __dirname + '/__mocks__/nodejsMock.js';
6+
7+
module.exports = enm;

package.json

+3
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,11 @@
4242
},
4343
"scripts": {
4444
"start": "yarn react-native start",
45+
"start:inside-gb": "yarn react-native start --config `pwd`/rn-cli-inside-gb.config.js",
4546
"start:reset": "yarn clean:runtime && yarn start --reset-cache",
47+
"start:inside-gb:reset": "yarn clean:runtime && yarn start:inside-gb --reset-cache",
4648
"start:debug": "node --inspect-brk node_modules/.bin/react-native start",
49+
"start:inside-gb:debug": "node --inspect-brk node_modules/.bin/react-native start:inside-gb",
4750
"android": "react-native run-android",
4851
"preios": "yarn preios:carthage",
4952
"preios:carthage": "pushd react-native-aztec && (yarn install-aztec-ios; popd)",

rn-cli-inside-gb.config.js

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/** @format */
2+
const path = require( 'path' );
3+
4+
const enm = require( './extra-node-modules.config.js' );
5+
6+
const { lstatSync, readdirSync } = require( 'fs' );
7+
const getDirectoryNames = dir =>
8+
readdirSync( dir ).filter( name => lstatSync( path.resolve( dir, name ) ).isDirectory() );
9+
10+
const wppackagenames = getDirectoryNames( path.resolve( __dirname, '../packages/' ) );
11+
12+
const mapper = function( accu, v ) {
13+
accu[ '@wordpress/' + v ] = path.resolve( __dirname, '../packages/' + v );
14+
return accu;
15+
};
16+
17+
const wppackages = wppackagenames.reduce( mapper, {} );
18+
19+
module.exports = {
20+
extraNodeModules: Object.assign( enm, wppackages ),
21+
getProjectRoots() {
22+
const roots = [ __dirname, path.resolve( __dirname, '../node_modules' ) ].concat(
23+
Object.values( wppackages )
24+
);
25+
return roots;
26+
},
27+
getTransformModulePath() {
28+
return require.resolve( './sass-transformer-inside-gb.js' );
29+
},
30+
getSourceExts() {
31+
return [ 'js', 'json', 'scss', 'sass' ];
32+
},
33+
getProvidesModuleNodeModules() {
34+
return [ 'react-native-svg', 'react-native' ];
35+
},
36+
};

rn-cli.config.js

+11-29
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,21 @@
11
/** @format */
2-
const path = require( 'path' );
3-
4-
const enm = require( 'node-libs-react-native' );
5-
enm.fs = __dirname + '/__mocks__/nodejsMock.js';
6-
enm.net = __dirname + '/__mocks__/nodejsMock.js';
7-
enm.canvas = __dirname + '/__mocks__/nodejsMock.js';
8-
9-
const { lstatSync, readdirSync } = require( 'fs' );
10-
const getDirectoryNames = dir =>
11-
readdirSync( dir ).filter( name => lstatSync( path.resolve( dir, name ) ).isDirectory() );
12-
13-
const wppackagenames = getDirectoryNames( path.resolve( __dirname, '../packages/' ) );
14-
15-
const mapper = function( accu, v ) {
16-
accu[ '@wordpress/' + v ] = path.resolve( __dirname, '../packages/' + v );
17-
return accu;
18-
};
19-
20-
const wppackages = wppackagenames.reduce( mapper, {} );
2+
const blacklist = require( 'metro' ).createBlacklist;
3+
const enm = require( './extra-node-modules.config.js' );
214

225
module.exports = {
23-
extraNodeModules: Object.assign( enm, wppackages ),
24-
getProjectRoots() {
25-
const roots = [ __dirname, path.resolve( __dirname, '../node_modules' ) ].concat(
26-
Object.values( wppackages )
27-
);
28-
return roots;
6+
extraNodeModules: enm,
7+
getBlacklistRE: function() {
8+
// Blacklist the GB packages we want to consume from NPM (online) directly.
9+
// On the other hand, GB packages that are loaded from the source tree directly
10+
// are automagically resolved by Metro so, there is no list of them anywhere.
11+
return blacklist( [
12+
/gutenberg\/packages\/(autop|compose|deprecated|hooks|i18n|is-shallow-equal)\/.*/,
13+
] );
2914
},
3015
getTransformModulePath() {
31-
return require.resolve( './sass-transformer-inside-gb.js' );
16+
return require.resolve( './sass-transformer.js' );
3217
},
3318
getSourceExts() {
3419
return [ 'js', 'json', 'scss', 'sass' ];
3520
},
36-
getProvidesModuleNodeModules() {
37-
return [ 'react-native-svg', 'react-native' ];
38-
},
3921
};

0 commit comments

Comments
 (0)