Skip to content

Commit

Permalink
Remove providesModuleNodeModules
Browse files Browse the repository at this point in the history
Reviewed By: rubennorte

Differential Revision: D15664444

fbshipit-source-id: 6ee74b88d93503d0dd3624469f801152df13c016
  • Loading branch information
cpojer authored and facebook-github-bot committed Jun 6, 2019
1 parent d267520 commit 7b46150
Show file tree
Hide file tree
Showing 13 changed files with 6 additions and 96 deletions.
9 changes: 1 addition & 8 deletions docs/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -268,13 +268,6 @@ Type: `Array<string>`

Additional platforms to look out for, For example, if you want to add a "custom" platform, and use modules ending in .custom.js, you would return ['custom'] here.

#### `providesModuleNodeModules`

Type: `Array<string>`

Specify any additional node modules that should be processed for providesModule declarations.


### Serializer Options

#### `getRunModuleStatement`
Expand Down Expand Up @@ -323,7 +316,7 @@ Using the `metro-config` package it is possible to merge multiple configurations
| `mergeConfig(...configs): MergedConfig` | Returns the merged configuration of two or more configuration objects. |

> **Note:** Arrays and function based config parameters do not deeply merge and will instead override any pre-existing config parameters.
> This allows overriding and removing default config parameters such as `platforms`, `providesModuleNodeModules` or `getModulesRunBeforeMainModule` that may not be required in your environment.
> This allows overriding and removing default config parameters such as `platforms` or `getModulesRunBeforeMainModule` that may not be required in your environment.
#### Merging Example

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,6 @@ Object {
"windows",
"web",
],
"providesModuleNodeModules": Array [
"react-native",
"react-native-windows",
],
"resolveRequest": null,
"resolverMainFields": Array [
"browser",
Expand Down Expand Up @@ -181,10 +177,6 @@ Object {
"windows",
"web",
],
"providesModuleNodeModules": Array [
"react-native",
"react-native-windows",
],
"resolveRequest": null,
"resolverMainFields": Array [
"browser",
Expand Down
2 changes: 0 additions & 2 deletions packages/metro-config/src/configTypes.flow.js
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ export type OldConfigT = {
getPolyfills: ({platform: ?string}) => $ReadOnlyArray<string>,
getProjectRoots: ?() => Array<string>, // @deprecated
getProjectRoot: () => string,
getProvidesModuleNodeModules?: () => Array<string>,
getResolverMainFields: () => $ReadOnlyArray<string>,
getRunModuleStatement: (number | string) => string,
getSourceExts: () => Array<string>,
Expand All @@ -111,7 +110,6 @@ type ResolverConfigT = {|
extraNodeModules: {[name: string]: string},
hasteImplModulePath: ?string,
platforms: $ReadOnlyArray<string>,
providesModuleNodeModules: $ReadOnlyArray<string>,
resolverMainFields: $ReadOnlyArray<string>,
resolveRequest: ?CustomResolver,
sourceExts: $ReadOnlyArray<string>,
Expand Down
7 changes: 0 additions & 7 deletions packages/metro-config/src/convertConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ async function convertOldToNew({
resolveRequest,
getAssetExts,
getPlatforms,
getProvidesModuleNodeModules,
getResolverMainFields,
getSourceExts,
hasteImplModulePath,
Expand Down Expand Up @@ -90,19 +89,13 @@ async function convertOldToNew({
const platforms =
(getPlatforms && getPlatforms()) || defaultConfig.resolver.platforms;

const providesModuleNodeModules =
typeof getProvidesModuleNodeModules === 'function'
? getProvidesModuleNodeModules()
: defaultConfig.resolver.providesModuleNodeModules;

const watchFolders = getWatchFolders();

return {
resolver: {
allowPnp,
assetExts,
platforms,
providesModuleNodeModules,
resolverMainFields: getResolverMainFields(),
sourceExts,
hasteImplModulePath,
Expand Down
2 changes: 0 additions & 2 deletions packages/metro-config/src/defaults/defaults.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,6 @@ exports.moduleSystem = require.resolve('metro/src/lib/polyfills/require.js');

exports.platforms = ['ios', 'android', 'windows', 'web'];

exports.providesModuleNodeModules = ['react-native', 'react-native-windows'];

exports.DEFAULT_METRO_MINIFIER_PATH = 'metro-minify-uglify';

exports.defaultCreateModuleIdFactory = defaultCreateModuleIdFactory;
2 changes: 0 additions & 2 deletions packages/metro-config/src/defaults/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ const os = require('os');
const path = require('path');

const {
providesModuleNodeModules,
assetExts,
sourceExts,
platforms,
Expand All @@ -36,7 +35,6 @@ const getDefaultValues = (projectRoot: ?string): ConfigT => ({
assetExts,
platforms,
sourceExts,
providesModuleNodeModules: providesModuleNodeModules.slice(),
resolverMainFields: ['browser', 'main'],
extraNodeModules: {},
resolveRequest: null,
Expand Down
5 changes: 0 additions & 5 deletions packages/metro-config/src/loadConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@ type YargArguments = {
assetExts?: Array<string>,
sourceExts?: Array<string>,
platforms?: Array<string>,
providesModuleNodeModules?: Array<string>,
'max-workers'?: string | number,
maxWorkers?: string | number,
transformer?: string,
Expand Down Expand Up @@ -201,10 +200,6 @@ function overrideConfigWithArguments(
output.resolver.platforms = argv.platforms;
}

if (argv.providesModuleNodeModules != null) {
output.resolver.providesModuleNodeModules = argv.providesModuleNodeModules;
}

if (argv['max-workers'] != null || argv.maxWorkers != null) {
output.maxWorkers = Number(argv['max-workers'] || argv.maxWorkers);
}
Expand Down
2 changes: 0 additions & 2 deletions packages/metro-config/src/oldConfig.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ const path = require('path');
const {
defaultCreateModuleIdFactory,
platforms,
providesModuleNodeModules,
} = require('./defaults/defaults');
const {FileStore} = require('metro-cache');

Expand Down Expand Up @@ -46,7 +45,6 @@ const DEFAULT = ({
// node_modules/metro/
getProjectRoot: () => path.resolve(__dirname, '../../..'),
getWatchFolders: () => [],
getProvidesModuleNodeModules: () => providesModuleNodeModules.slice(),
getRunModuleStatement: (moduleId: number | string) =>
`__r(${JSON.stringify(moduleId)});`,
getSourceExts: () => [],
Expand Down
7 changes: 3 additions & 4 deletions packages/metro-symbolicate/src/symbolicate.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,9 @@ if (argv.length < 1 || argv.length > 4) {
' ' + __filename + ' <source-map-file> <line> [column]',
' ' + __filename + ' <source-map-file> <moduleId>.js <line> [column]',
' ' + __filename + ' <source-map-file> <mapfile>.profmap',
' ',
__filename,
' <source-map-file> --attribution < attribution.jsonl ',
' > symbolicated.jsonl',
' ' +
__filename +
' <source-map-file> --attribution < in.jsonl > out.jsonl',
' ' + __filename + ' <source-map-file> <tracefile>.cpuprofile',
' Optional flags:',
' --no-function-names',
Expand Down
20 changes: 0 additions & 20 deletions packages/metro/src/DeltaBundler/__tests__/resolver-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ describe('traverseDependencies', function() {
assetExts: ['png', 'jpg'],
// This pattern is not expected to match anything.
blacklistRE: /.^/,
providesModuleNodeModules: [],
platforms: ['ios', 'android'],
resolverMainFields: ['react-native', 'browser', 'main'],
sourceExts: ['js', 'json'],
Expand Down Expand Up @@ -1742,25 +1741,6 @@ describe('traverseDependencies', function() {
p('/root/hasteModule.js'),
);
});

it('resolves haste modules in node_modules if added to providesModuleNodeModules', async () => {
config.resolver.providesModuleNodeModules = ['aPackage'];

setMockFileSystem({
'index.js': '',
node_modules: {
aPackage: {
'package.json': JSON.stringify({name: 'aPackage'}),
'hasteModule.js': '@providesModule hasteModule',
},
},
});

resolver = await createResolver(config);
expect(resolver.resolve(p('/root/index.js'), 'hasteModule')).toBe(
p('/root/node_modules/aPackage/hasteModule.js'),
);
});
});

describe('extraNodeModules config param', () => {
Expand Down
1 change: 0 additions & 1 deletion packages/metro/src/ModuleGraph/node-haste/node-haste.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,6 @@ exports.createResolveFn = function(options: ResolveOptions): ResolveFn {

const helpers = new DependencyGraphHelpers({
assetExts,
providesModuleNodeModules: defaults.providesModuleNodeModules,
});

const hasteFS = new HasteFS(files);
Expand Down
2 changes: 0 additions & 2 deletions packages/metro/src/node-haste/DependencyGraph.js
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ class DependencyGraph extends EventEmitter {
this._moduleMap = initialModuleMap;
this._helpers = new DependencyGraphHelpers({
assetExts: config.resolver.assetExts,
providesModuleNodeModules: config.resolver.providesModuleNodeModules,
});
this._haste.on('change', this._onHasteChange.bind(this));
this._moduleCache = this._createModuleCache();
Expand All @@ -86,7 +85,6 @@ class DependencyGraph extends EventEmitter {
mocksPattern: '',
name: 'metro-' + JEST_HASTE_MAP_CACHE_BREAKER,
platforms: config.resolver.platforms,
providesModuleNodeModules: config.resolver.providesModuleNodeModules,
retainAllFiles: true,
resetCache: config.resetCache,
rootDir: config.projectRoot,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,45 +15,14 @@ const path = require('path');
const NODE_MODULES = path.sep + 'node_modules' + path.sep;

class DependencyGraphHelpers {
_providesModuleNodeModules: $ReadOnlyArray<string>;
_assetExts: Set<string>;

constructor({
providesModuleNodeModules,
assetExts,
}: {
+providesModuleNodeModules: $ReadOnlyArray<string>,
+assetExts: $ReadOnlyArray<string>,
}) {
this._providesModuleNodeModules = providesModuleNodeModules;
constructor({assetExts}: {+assetExts: $ReadOnlyArray<string>}) {
this._assetExts = new Set(assetExts);
}

isNodeModulesDir(file: string) {
const index = file.lastIndexOf(NODE_MODULES);
if (index === -1) {
return false;
}

const parts = file.substr(index + 14).split(path.sep);

// Handle @scoped providesModuleNodeModules on both posix and win32
if (
parts.length >= 2 &&
parts[0][0] === '@' &&
this._providesModuleNodeModules.indexOf(parts[0] + '/' + parts[1]) > -1
) {
return false;
}

const dirs = this._providesModuleNodeModules;
for (let i = 0; i < dirs.length; i++) {
if (parts.indexOf(dirs[i]) > -1) {
return false;
}
}

return true;
return file.lastIndexOf(NODE_MODULES) !== -1;
}

isAssetFile(file: string) {
Expand Down

0 comments on commit 7b46150

Please sign in to comment.