gpt4 book ai didi

reactjs - 为什么 React 需要 webpack-dev-server 才能运行?

转载 作者:行者123 更新时间:2023-12-02 21:25:50 25 4
gpt4 key购买 nike

我是 React 新手,我关注了 Facebook's Installation (创建一个新应用程序)。

所以每次我需要运行应用程序时,它都需要启动服务器。当我尝试在 chrome 中打开构建版本(直接打开 HTML)时,没有显示任何内容。

然后我尝试使用 codecademy 自己从头开始设置 React 环境教程。这里,我构建项目后,可以直接在chrome中打开HTML并显示内容。

我的问题是:

为什么第一种方法无法显示网页,而第二种方法无需启动服务器即可运行?

<小时/>

编辑:

package.json 对于第二种方法:

{
"name": "practice",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack",
"start": "webpack-dev-server"
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^15.6.1",
"react-dom": "^15.6.1"
},
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-react": "^6.24.1",
"html-webpack-plugin": "^2.30.1",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.8.2"
}
}

webpack.config.js:

var HTMLWebpackPlugin = require('html-webpack-plugin');
var HTMLWebpackPluginConfig = new HTMLWebpackPlugin({
template: __dirname + '/app/index.html',
filename: 'index.html',
inject: 'body'
});

module.exports = {
entry: __dirname + '/app/index.js',
module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
output: {
filename: 'transformed.js',
path: __dirname + '/build'
},
plugins: [HTMLWebpackPluginConfig]
};

最佳答案

问题是:HTML 中其他文件的路径

当从该目录运行 webpack-dev-server 时,它假定它是服务器的根目录。

因此,如果您打开使用 Facebook 教程创建的应用程序的 HTML(build/index.html),您可以看到其他文件的路径以绝对路径形式给出,而不是以相对路径形式给出.

就像在 HTML 中一样,您可以看到 /static/pathToFile,但看不到 ./static/pathToFile

enter image description here

因此,根据第二种方法,尝试在 HTML 中将 transformed.js 的路径指定为 /transformed.js 。它不显示任何内容。但是,如果您运行 npm run start ,然后使用给定的端口号打开本地主机(就像第一种方法一样)。现在您可以看到您的 React 应用程序。

意见:始终尝试从头开始自己设置环境。不要尝试像 Facebook 的“创建新应用程序”这样简单的设置方法。相反,请尝试 Facebook 的“向现有应用程序添加 React”。您可以了解事情实际上是如何运作的,就像今天一样。

提示:

尝试始终在网络浏览器中调试应用程序!

例如,在 Chrome 中打开第一种方法 HTML,然后打开开发人员工具。

前往网络选项卡并重新加载。 enter image description here

将鼠标悬停在失败的文件上可查看错误所在。您可以看到ERR_FILE_NOT_FOUND

点击它可以查看返回状态、请求的 URL 等。

enter image description here

希望对你有帮助!

关于reactjs - 为什么 React 需要 webpack-dev-server 才能运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46340753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com