解决方案是更改blacklist.js
modulemetro-config
文件中的文件,如上所述。但是每次运行时,npm/yarn install
您都必须再次更改它。
所以我想出了一个解决方案,可以节省您每次访问文件和更改文件的时间:
我使用了一个使用 JavaScript 编辑文件的库:
- 安装替换文件module:
npm install --save replace-in-file
创建一个与node_module
文件夹名称相同级别的文件:metro-fix.js
每个示例。
将此脚本复制粘贴到其中:
//Load the library
const replace = require('replace-in-file');
// path for metro config file
const path = 'node_modules/metro-config/src/defaults/blacklist.js';
// creating options for editing the file
const options = [
{
files: path,
from: 'modules[/',
to: 'modules[\\/',
},
{
files: path,
from: 'react[/',
to: 'react[\\/',
},
{
files: path,
from: 'dist[/',
to: 'dist[\\/',
},
];
try {
let results;
// looping on each option
options.forEach(e => {
results = replace.sync(e);
console.log('Replacing "'+e.from+'" by "'+e.to+'" results:', results[0].hasChanged);
});
} catch (error) {
console.error('Error occurred:', error);
}
- 现在每次运行时
npm install
只需运行:
node metro-fix.js
请参阅替换文件文档。