我按照以下链接开始使用 react-native
我试图在没有博览会的情况下创建本机应用程序,所以我按照文档我遵循以下命令
npm install -g react-native-cli
react-native init AwesomeProject
运行android命令后
react-native run-android
它在模拟器上给了我以下错误
所以我使用启动命令来运行地铁服务器
react-native start
该命令在控制台中给了我另一个错误
我按照以下链接开始使用 react-native
我试图在没有博览会的情况下创建本机应用程序,所以我按照文档我遵循以下命令
npm install -g react-native-cli
react-native init AwesomeProject
运行android命令后
react-native run-android
它在模拟器上给了我以下错误
所以我使用启动命令来运行地铁服务器
react-native start
该命令在控制台中给了我另一个错误
Metro 使用某些 NPM 和 Node 版本存在问题。
你有两种选择:
\node_modules\metro-config\src\defaults\blacklist.js
并更改此代码:var sharedBlacklist = [
/node_modules[/\\]react[/\\]dist[/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
对此:
var sharedBlacklist = [
/node_modules[\/\\]react[\/\\]dist[\/\\].*/,
/website\/node_modules\/.*/,
/heapCapture\/bundle\.js/,
/.*\/__tests__\/.*/
];
请注意,如果您运行,
npm install
否则yarn install
您将需要再次更改代码。
它的 Nodejs 兼容性问题我卸载了我的 Node(12.11) 并安装了 Node(10) 稳定版本,它运行良好。
解决方案是按照上面的回答更改blacklist.js
模块文件中的文件。metro-config
但是每次运行时,npm/yarn install
您都必须再次更改它。
所以我想出了一个解决方案,可以节省您每次访问文件并更改文件的时间:
我使用了一个使用 JavaScript 编辑文件的库:
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
请参阅替换文件文档。
一个类似的问题被问到这里可能是这个解决方案可能对你有用,因为我申请并且它有效
当您使用 choco 命令(choco install -y nodejs.install python2 jdk8)安装 NodeJS 时,它将安装最新版本的节点,在撰写此答案时为 12.12.0。您必须将其降级到 10.16.3 并运行 react-native run-android命令,它应该可以正常工作
是的,只要转移到 Node 版本 10 就可以了。
nvm install <version>
nvm use <version>
有用...... :)
这是因为节点版本更高。
解决方案之一是您可以轻松地将节点版本从 12.x 降级12.x
或10.x
卸载 12.x 并安装 10.x
另一方面,如果您想将 12.x 用于其他项目怎么办。所以下面的解决方案使它更容易。您可以使用 nvm 来控制节点的多个版本。
所以首先从这里安装 nvm https://github.com/coreybutler/nvm-windows/releases
安装后记得将 nvm 路径添加到系统变量
然后nvm install 10.18.1 64
然后nvm install 12.14.1 64
列出所有安装的版本nvm list
每当您想从一个版本切换到另一个版本时,请使用该命令
nvm use 10.18.1 OR nvm use 12.14.1
关闭命令提示符和地铁捆绑器,再做一次
我通过这一步解决了这个问题:
react-native init myApp --version 0.60.0
react-native start
希望能帮助到你
是的,我也面临这个问题。实际上 Node.js 推荐给大多数用户的是 10.16.3 LTS 版本。使用以下 choco 命令将安装最新版本的 12.11.0。choco install -y nodejs.install python2 jdk8
我将 Node 版本从 12.11.0 降级到 10.16.3 LTS,它对我有用。