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 生产构建不加载任何内容 的相关文章

随机推荐

  • 查询中的累计总和

    如何返回行的累积和大于或小于指定值的行 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