Webpack 生产构建不加载任何内容

2024-01-16

我已经使用 React 和 Webpack 开发一个应用程序有一段时间了。我的开发环境运行良好,并且使用 webpack-dev-server 可以正确加载所有内容。

我决定运行应用程序的生产构建,以查看最终产品的尺寸,并观察 webpack 产品构建的一般输出。

事实证明,跑步webpack -p,虽然它确实产生输出(稍后会详细介绍),但当我在浏览器中访问该站点时,根本不会加载任何内容。快速检查输出告诉我,我的组件代码都没有进入webpack -p build.

图像和 HTML 会按其存在于我的 src (dev) 文件夹中的方式进行复制,但是我的 JS 捆绑输出非常小 - 文件 (main.js) 只有 246 字节。

这是运行 webpack -p 的输出

$ npm run build

> [email protected] /cdn-cgi/l/email-protection build /Users/me/Development/project
> NODE_ENV=production webpack -p --bail --progress --config webpack.config.babel.js

Hash: 9e5f6974ce21c920a375
Version: webpack 1.12.10
Time: 2003ms
            Asset       Size  Chunks             Chunk Names
       index.html    1.45 kB          [emitted]
  images/edit.svg  524 bytes          [emitted]
images/search.svg    1.19 kB          [emitted]
          main.js  246 bytes    0, 1  [emitted]  javascript, html
    + 219 hidden modules

当我运行项目的开发版本时,输出明显不同......我知道开发服务器依赖项在那里,并且代码没有缩小。而且,最重要的是 - 运行开发时一切都按预期工作服务器。

$ npm start

> [email protected] /cdn-cgi/l/email-protection start /Users/me/Development/project
> webpack-dev-server --hot --display-modules --config webpack.config.babel.js

http://localhost:3333/
webpack result is served from /
content is served from /Users/me/Development/project/dist
Hash: 1b34ed58f9e323966ada
Version: webpack 1.12.10
Time: 2745ms
            Asset       Size  Chunks             Chunk Names
       index.html    1.45 kB          [emitted]
  images/edit.svg  524 bytes          [emitted]
images/search.svg    1.19 kB          [emitted]
          main.js    1.54 MB    0, 1  [emitted]  html, javascript

这是我的 webpack.config.babel.js 文件:

import webpack from 'webpack';
import path from 'path';

import ModernizrWebpackPlugin from 'modernizr-webpack-plugin';
import modernizrConfig from './modernizr.config';

const appDir = path.resolve(__dirname, './src');
const distDir = path.resolve(__dirname, './dist');
const nodeModulesDir = path.resolve(__dirname, './node_modules');

const excludeDirs = /(node_modules|bower_components)/;

module.exports = {
    entry: {
        javascript: appDir + '/main.js',
        html: appDir + '/index.html'
    },
    output: {
        path: distDir,
        filename: 'main.js',
    },
    devServer: {
        contentBase: distDir,
        inline: true,
        port: 3333
    },
    resolve: {
        extensions: ['', '.js', '.es6'],
        modulesDirectories: [
            'node_modules',
            './src'
        ]
    },
    plugins: [
        // new webpack.optimize.CommonsChunkPlugin('common.js'),
        // new ModernizrWebpackPlugin(modernizrConfig),
    ],
    sassLoader: {
        sourceMap: false,
        includePaths: [
            appDir,
            nodeModulesDir,
            nodeModulesDir + '/breakpoint-sass/stylesheets/',
            nodeModulesDir + '/susy/sass'
        ]
    },
    module: {
        loaders: [
            { // js/jsx
                test: /\.js?$/,
                exclude: excludeDirs,
                loader: 'babel',
                query: {
                    cacheDirectory: true,
                    presets: [
                        'es2015', 'react'
                    ]
                }
            },
            { // html
                test: /\.html$/,
                exclude: excludeDirs,
                loader: 'file?name=[name].[ext]'
            },
            { // images
                test: /\.(gif|png|jpg|jpeg|svg)$/,
                exclude: excludeDirs,
                loader: 'file?name=images/[name].[ext]'
            },
            { // sass
                test: /\.scss$/,
                exclude: excludeDirs,
                loader: 'style!css!sass'
            }
        ]
    }
}

我不认为我有一个特别复杂或不常见的设置,并且我已经尝试将所有内容从 es2015/es6 更改为 commonJS,并得到相同的结果。

我不知道问题可能出在哪里;希望有人能指出我遇到的一些明显错误,或者建议可以解决此问题的配置更新/更改。

感谢您花时间阅读所有内容!


正如我在评论中提到的,我已经成功使用 webpack 几个月了,但我从未遇到过使用 HTML 文件作为入口点的情况。

通常你会使用 Webpack 来打包要使用的 javascript、css,有时还有图像(即:“资产”)by一个 html 文件。提供该 HTML 文件不属于 Webpack 的职责范围。

我建议使用Webpack来生成only最终的 javascript 包,然后使用其他方法(即:express 或其他 Web 服务器)来提供该文件和使用该文件的 html。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webpack 生产构建不加载任何内容 的相关文章

  • Three.js:缩放几何图形后错误的 BoundingBox

    在我的场景中 我有一个简单的立方体 var test new THREE Mesh new THREE CubeGeometry 10 10 10 new THREE MeshBasicMaterial scene add test 该立方
  • 使用 JavaScript 禁用第三方 cookie

    我正在努力根据所有在欧盟运营的公司的数据保护规则实施新的 Cookie 政策合规性 根据该规则 用户在使用任何网站时必须能够拒绝 接受除必需的 Cookie 之外的所有内容 在我客户的网站中 我可以看到正在存储以下第三方 cookie ga
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清理 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • 为 Angular2 中的组件加载多个样式表

    我正在构建一个 angular2 应用程序 当我尝试为同一组件加载多个样式表时 我面临多个问题 这是我正在做的代码 import Component from angular core Component selector my tag t
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 如何制作没有 ng-repeat 的模板并使用 Angular-drag-and-drop-lists 将数据传递到 $scope?

    我想用角度拖放列表 https github com marceljuenemann angular drag and drop lists使用我自己的网格模板到所见即所得编辑器 如何构建我自己的 HTML 模板而不需要ng repeat因
  • window.location 和 location.href 之间的区别

    我对之间的区别感到困惑window location and location href 两者似乎都以相同的方式行事 有什么不同 window location是一个对象 它保存有关当前文档位置的所有信息 主机 href 端口 协议等 lo
  • React onClick 事件仅在渲染组件时触发

    动态渲染组件的 onClick 函数应通过 useState 设置所选日期 imgs 上的 onClicks 完全按照您的预期工作 没有任何问题 即使只是在其位置放置一个带有 onClick 属性的 div 也是行不通的 当组件渲染时 on
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • Firebase 函数 onWrite 未被调用

    我正在尝试使用 Firebase 函数实现一个触发器 该触发器会复制数据库中的一些数据 我想观看所有添加的内容votes user vote 结构为 我尝试的代码是 const functions require firebase func
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 日期出现奇怪的错误,“未捕获非法访问”

    所以我试图找到最新的DateJavascript 可以处理 我把它减少到 9 月 275760 并增加了我开始捕获未捕获的天数illegal access例外new Date 09 24 275760 to new Date 10 13 2
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • 使用 ApolloClient 从 useContext 挂钩导入一个简单变量

    我的反应相对较新 似乎无法导入client来自上下文的变量 我有一个名为 federation tsx 的文件 其中包含一些代码 我相信这应该是相关部分 const link createHttpLink uri process env U
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening
  • 带参数的事件监听器

    我想将参数传递给 JavaScript 中的事件侦听器 我已经找到了解决方案 但我无法理解它们为什么或如何工作以及为什么其他解决方案不起作用 我有 C C 背景 但是 Javascript 函数的执行有很大不同 您能否帮助我理解以下示例如何
  • 如何用另一个响应替换窗口的 URL 哈希?

    我正在尝试使用替换方法更改哈希 URL document location hash 但它不起作用 function var anchor document location hash this returns me a string va

随机推荐

  • 查询中的累计总和

    如何返回行的累积和大于或小于指定值的行 table id count 1 30 2 10 3 5 4 20 5 15 query SELECT id count FROM table ORDER BY id HAVING SUM count
  • Windows 上的 OpenSSL 可以使用系统证书存储吗?

    我从 Linux 移植到 Windows 的一些工作 C 代码在 Windows 上失败 因为SSL get verify result 正在返回X509 V ERR UNABLE TO GET ISSUER CERT LOCALLY 该代
  • 使用 c_api.h 执行使用 tensorflow.contrib.resampler 的冻结张量流图

    我有一个冻结的张量流图 pb 格式 其中包含对 tensorflow contrib resampler 的调用 必须使用以下命令在 C 应用程序中加载和执行该调用 c api h 如果我调用以下命令 我就可以从 python 成功加载并执
  • 在django中显示多个条形图

    我是 django 的新手 对 python 知之甚少 我正在学习在 django 框架中绘制图表 我绘制了单个条形图 但在使用 django 项目的数据库 Telecom db 绘制多个条形图时遇到问题 然而 在 wxPython 中 以
  • 在全屏模式下检测事件更改 Internet Explorer

    我正在尝试编写一个事件处理程序来检测我拥有的视频播放器是否处于全屏模式或 常规 模式 我尝试过使用 document addEventListener fullscreenchange myfunc false 但这在 IE 中不起作用 我
  • 读取 NSUserDefaults 与变量的速度

    我有一个应用程序 它经常调用变量 这些变量存储在NSUserDefaults 我想知道在哪里NSUserDefaults正在存储 如果我打电话NSUserDefaults直接而不是使用变量 哪个更快 变量或NSUserDefaults 因为
  • 如何在 Visual Studio Code 上查看 C# Nuget Package 的源代码?

    当我们选择 转到定义 或 F12 或 CRTL 单击 时 有什么方法可以查看 Nuget 包的源代码吗 此时 我在代码中单击 CRTL 单击 Nuget Package 中的某个类 vscode 会显示程序集摘要 元数据 其中我只能看到文档
  • 从 Git 恢复文件?

    问题与问题相关 致命文件系统错误后如何恢复 Git https stackoverflow com questions 552832 how to restore git after fatal file system error 但对于单
  • 如何在不使用release分支的情况下使用git flow?

    有多家分店可供选择git flow 例如 feature release support hotfix bugfix 我不需要release 分支并想要合并staging分支 一个开发分支 直接到master 使用什么是实现此目的的最佳方法
  • C++11 在 constexpr 函数中使用统一值初始化数组

    我有一个类模板 它根据模板参数构建一个简单的数组作为其成员之一 我需要能够在构造函数之一中将数组中的每个元素初始化为单个值 不幸的是这个构造函数必须是constexpr 相关部分归结为 template
  • 每次循环递减

    是否可以在 Excel 的 VBA 中的每个循环中递减 我有这样的代码 Sub Makro1 Dim rng As Range Dim row As Range Dim cell As Range Set rng Range B1 F18
  • 无法从 .sql 文件创建存储过程 - JDBC

    我正在尝试使用 jdbc 在安装 Web 项目期间执行 sql 文件 谷歌建议的 2 个选项 手动解析脚本 通过拆分 字符 或使用 ant 我更喜欢简单的方式 所以 ant 是一个不错的选择 这是我用来设置数据库的代码 public voi
  • VFY:无法解析静态方法10876:Android

    我在程序中使用了 SmsCbMessage java 类 它取自http grepcode com file repository grepcode com java ext com google android android 4 0 1
  • 使用 WPF 将一个列表与另一个列表绑定

    开门见山 我正在使用 MVVM 编写一个程序 并且制作了如下视图 类结构 class Company int CompanyID string Name List
  • 如何让JavaScript在页面加载后执行?

    我正在执行一个外部脚本 使用
  • 如何在ansible中迭代库存组?

    我看过一些与我的问题类似的帖子 Ansible 迭代库存组 https stackoverflow com questions 53683136 ansible iterate over inventory groups Ansible 迭
  • 将 R markdown 文件发布为博客文章

    我想发布这样的基本博客文章 博客文章示例 http rpubs com hbat 6531使用我的 R markdown 文件 但我想在 Wordpress 而不是 wordpress com 中发布它 最有希望的解决方案似乎是怡辉的功能
  • 在 Android 中从屏幕抓取创建视频

    我想在视频中记录用户交互 然后人们可以将其上传到他们的社交媒体网站 例如 会说话的汤姆猫 Android 应用程序有一个小摄像机图标 用户可以按摄像机图标 然后与应用程序交互 按图标停止录制 然后处理 转换视频以准备上传 我想我可以使用 s
  • 将元素均匀分布在列中

    我有一个名为 wrap其中放置物品 未知数量的物品 thing 应排列成四列 相互堆叠 div class wrap div class thing thing1 div div class thing thing2 div div 列需要
  • Webpack 生产构建不加载任何内容

    我已经使用 React 和 Webpack 开发一个应用程序有一段时间了 我的开发环境运行良好 并且使用 webpack dev server 可以正确加载所有内容 我决定运行应用程序的生产构建 以查看最终产品的尺寸 并观察 webpack