繁体   English   中英

React &amp; Webpack:加载失败<script> with source http://localhost:8080/app/bundle.js

[英]React & Webpack: Loading failed for the <script> with source http://localhost:8080/app/bundle.js

我是 reactjs 的新手。 我尝试使用包括 index.js(包含 console.log())在内的基本索引页面配置反应,但是当我尝试运行服务器 index.html 显示正确但 bundle.js 未加载时。 我搜索了很多,但没有得到正确的答案,请任何人帮助我。

我的 webpack.config.js 是

    // Webpack config js.

var webpack = require("webpack");
var path = require("path");

var DIST_VAR = path.resolve(__dirname, "dist");
var SRC_VAR = path.resolve(__dirname, "src");


var config = {
    entry : SRC_VAR + "\\app\\index.js",
    output: {
            path: DIST_VAR + "\\app\\",
            filename: "bundle.js",
            publicPath : "\\app\\",
    },
    module: {
            rules: [
                {
                    test: /\.js?/,
                    include: SRC_VAR,
                    loader: "babel-loader",
                    query: {
                        presets: [ "react" , "es2015" , "stage-2"]
                    }
                }
            ]
    }

};

module.exports = config;

控制台中显示错误:源为“ http://localhost:8080/app/bundle.js ”的加载失败。

编辑:

添加了文件夹列表.. 文件夹路径列表卷序列号为 BE9C-4E51

C:.
|   package-lock.json
|   package.json
|   webpack.config.js
|   
+---dist
|   |   index.html
|   |   
|   \---app
|           bundle.js
|           
+---node_modules
|    <Here the node_modules>
\---src
    |   index.html
    |   
    \---App
            index.js

我会在没有看到您的项目文件夹结构的情况下做出一些假设。 看起来它可能是您的 publicPath。 除非这是您的意图,否则 /app 文件夹不应该可见,并且由于您的控制台显示“localhost:8080/app/bundle.js”,这意味着它正在寻找“project-root/src/app/app/bundle.js”。 js”而不是“project-root/src/app/bundle.js”

在 webpack 文档中,他们告诉您默认为 root '/' 并查看我自己的 webpack 文件,这也是我当前设置的。

参考: https : //webpack.js.org/guides/public-path/

编辑:这是一个使用 Webpack 3 的示例。版本 4 刚刚发布,这不起作用,所以如果您使用 Webpack 4,我会小心您从哪里获取配置示例。

 const webpack = require('webpack'); const path = require('path'); module.exports = { plugins: [ // new webpack.NamedModulesPlugin(), // new webpack.HotModuleReplacementPlugin() ], context: path.join(__dirname, 'src'), entry: [ // 'webpack/hot/dev-server', // 'webpack-hot-middleware/client', // 'babel-polyfill', // 'history', './index.js' ], output: { path: path.join(__dirname, 'www'), filename: 'bundle.js', publicPath: '/' }, module: { loaders: [{ test: /\\.js$/, exclude: /node_modules/, loaders: ['react-hot-loader/webpack', 'babel-loader'] }], resolve: { modules: [ path.join(__dirname, 'node_modules'), ], }, };

安装后

npm init -y 

npm install --save-dev webpack webpack-dev-server webpack-cli

和你的结构文件

src/
build/
webpack.config.js
package.json

转到 package.json,并添加构建命令:

"scripts": {
    "start":"webpack serve --mode development",
    "build":"webpack"
  },

在 webpack.config.js 中

const path = require('path');
 
module.exports = {
  entry: path.resolve(__dirname, './src/index.js'),
  output: {
    path: path.resolve(__dirname, './build'),
    filename: 'bundle.js',
  },
  devServer: {
    contentBase: path.resolve(__dirname, './build'),
  },
};

所以,在你的 build/index.html

<script type="text/javascript" src="./bundle.js"></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM