我最近开始做出反应。
我的 index.html 包含
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="%PUBLIC_URL%/favicon.ico">
<title>React App</title>
</head>
<body>
<div id="root"></div>
</body>
</html>
和 index.js 包含
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';
ReactDOM.render(
<App />,
document.getElementById('root')
);
我的疑问是我没有index.js
在中的任何脚本标签中提及index.html
。但是它如何引用root
in中的div元素index.html
?我想知道它工作正常。请给我解释一下。
我已经运行了这些命令来创建应用程序
npm install -g create-react-app
create-react-app hello-world
cd hello-world
npm start
Create-React-App
有一个非常有趣的设置。
我开始挖掘package.json
npm脚本start
“ start”:“反应脚本开始”
这将带我进入他们的二进制文件react-scripts
,node_modules/.bin
我将在此处发布相关内容。
switch (script) {
case 'build':
case 'eject':
case 'start':
case 'test': {
const result = spawn.sync(
'node',
[require.resolve('../scripts/' + script)].concat(args),
{ stdio: 'inherit' }
);
因此,这告诉我他们正在../scripts/
文件夹中寻找脚本。
因此,自从我开始执行操作以来,我去了react-scripts npm module(node_modules/react- scripts
)并打开了node_modules/react-scripts/scripts/start.js
文件npm start
。
现在,这里是我正在寻找的webpack配置的地方。
他们专门指的是node_modules/react-scripts/config/webpack.config.dev.js
。我将在此处发布相关内容。
entry: [
// Finally, this is your app's code:
paths.appIndexJs,
],
plugins: [
// Generates an `index.html` file with the <script> injected.
new HtmlWebpackPlugin({
inject: true,
template: paths.appHtml,
}),
因此,所引用的paths.appIndexJs
文件是webpack配置中的入口文件。
他们正在使用HtmlWebpackPlugin在路径上加载html paths.appHtml
。
最后一个难题是将其链接回您发布的文件。从发布相关内容paths.js
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = relativePath => path.resolve(appDirectory, relativePath);
module.exports = {
...
appHtml: resolveApp('public/index.html'),
appIndexJs: resolveApp('src/index.js'),
...
}
因此,在您的应用程序目录中,
appHtml是文件public/index.html
appIndexJs是文件src/index.js
您的两个文件有问题。
哇!那是一段漫长的旅程..:P
更新1- 截至react-scripts@3.x
下面的react-scripts
二进制文件node_modules/.bin
更改了以下逻辑。本质上是在做同样的事情。
if (['build', 'eject', 'start', 'test'].includes(script)) {
const result = spawn.sync(
'node',
nodeArgs
.concat(require.resolve('../scripts/' + script))
.concat(args.slice(scriptIndex + 1)),
{ stdio: 'inherit' }
);
用于dev&prod的webpack配置已合并为一个。
const configFactory = require('../config/webpack.config');
HTMLWebpackPlugin配置看起来像这样-这是因为他们必须在此之上有条件地添加生产配置
plugins: [
// Generates an `index.html` file with the <script> injected.
new HtmlWebpackPlugin(
Object.assign(
{},
{
inject: true,
template: paths.appHtml,
},
路径文件代码有一些更新
module.exports = {
...
appHtml: resolveApp('public/index.html'),
appIndexJs: resolveModule(resolveApp, 'src/index'),
...
};
问题内容: 我正在使用一个简单的短信应用程序,正在使用以下代码在加载线程列表时获取线程ID,但是我不知道如何使用线程ID获取联系人ID。我是root用户,并且使用root资源管理器,我可以在数据库中看到一个带有以下各列的联系人表 因此,由于我具有线程ID,因此我应该能够获取联系人ID,但我还需要确保该方法在所有设备上均有效。我的应用不是root用户 获取线程ID的代码 问题答案: 我恢复所有联系人
问题内容: 是否可以在一个查询中完成? 据我所知sim联系人的内容uri是 问题答案: 这很容易!:)
问题内容: 我的脚本当前如下所示: 日期“ x”和事件“ x”是一系列html标签。页面加载(onload)时运行此功能。我的目标是仅从本地.json文件而不是上面获得的硬代码执行同一操作。我已经签出了http://api.jquery.com/jQuery.getJSON/。 本地.json文件如下所示: 有什么建议? 问题答案: 假设您说.json文件的意思是“本地文件系统上的文件”。 您需要
问题内容: 返回一个对象,该对象的方法返回一个没有方法的。 虽然我能够“看到”“ Gid”,但无法以编程方式访问“ Gid”。 如何在此处检索文件的“ Gid”? 印刷品: 注意:我不需要可移植的解决方案,它只需要在Linux上工作即可(值得注意的是,由于众所周知的问题)。 问题答案: 该模块显示的return 的数据类型为,因此这似乎可以将文件的Gid作为字符串获取: 如果有更好的方法,请告诉我
什么是 Bundle ID Bundle ID是第三方应用的唯一识别码,在iOS应用市场被称为Bundle ID,在Android应用市场被称为Application ID。 1. 如何获取iOS Bundle identifier? 1.1 开发者获取 使用Xcode,并切换至Info下,查看Bundle identifier,其中,黑色和灰色的文字都要复制下来。 1.2 运营者获取 登录iOS
问题内容: 我的Android应用程序中有以下字符串: 我需要操纵字符串并为该输出分割字符串: 我需要始终取字符串的最后一个元素。 如何在Java中输出此内容? 我非常感谢您在解决此问题方面可以给我的任何帮助。 问题答案: 另一种可能性: