【问题标题】:Webpack Build Not Rendering HTML5 VideoWebpack 构建不渲染 HTML5 视频
【发布时间】:2018-08-12 16:51:52
【问题描述】:

-- 我有一个 HTML5 视频,可以在本地主机(开发环境)中正确加载。

反应组件

import HomeVideo from '../video/home.mp4';
const Home = () => (
  <div className="home-container">
    <div className='video-container'>
    </div>
    <video autoPlay loop>
      <source src={HomeVideo} type='video/mp4' />
      Your browser does not support the video tag.<a href="https://youtu.be/bgSMpRpObCg" rel="noopener noreferrer" target="_blank">Watch it here</a>
    </video>
  </div>
  </div>    
)
export default Home;
  • 视频在 DEV 中正确加载:

  • 只要我运行 npm run build 我的 webpack -p 就会处理所有内容。

Package.json

"scripts": {
    "start": "webpack-dev-server --devtool eval-source-map --history-api-fallback --open",
    "build": "webpack -p"
  },
  • 在生产版本中,我在控制台中看到了视频(但是 src= 显示了 webpack 构建 url)是这个问题吗?

  • 但视频确实没有加载到页面中。

我的 webpack.config.js 目前是这样写的: ps:无论有没有注释掉的行,行为仍然是一样的。在开发中工作,在构建后不工作。

const webpack = require('webpack');

module.exports = {
  entry: `${__dirname}/src/index.js`,
  output: {
    path: `${__dirname}/build`,
    publicPath: '/build/',
    filename: 'bundle.js',
  },


  module: {
    rules: [
      //{ test: /\.html$/, loader: 'html-loader?attrs[]=video:src' },
      //{ test: /\.(mov|mp4)$/, loader: 'url-loader?limit=10000&mimetype=video/mp4' },
      {
        test: /\.(mov|mp4)$/, use: [
          {
            loader: 'file-loader',
            options: {
              name: '[path][name].[ext]'
            }
          }
        ]
      },
      { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' },
      {
        test: /\.css$/,
        use: ['style-loader', { loader: 'css-loader', options: { minimize: true } }],
      },
      {
        test: /\.(pdf|jpg|png|svg)$/,
        use: {
          loader: "file-loader",
          options: {
            name: "[path][name].[hash].[ext]",
          },
        },
      },
    ]
  },

  plugins: process.argv.indexOf('-p') === -1 ? [] : [
    new webpack.optimize.UglifyJsPlugin({
      output: {
        comments: false,
      },
    }),
  ],
};

**我不知道这是否重要,但这是在 GitHub 页面上提供的。

【问题讨论】:

  • 控制台有错误吗?
  • 完全没有错误
  • 你在 main.js 中导入视频了吗?
  • 您是指Index.js 还是App.js?我只从使用它的组件中导入了视频,即Home.js...

标签: javascript html reactjs webpack webpack.config.js


【解决方案1】:

使用以下 web pack 配置。(取消注释下面的行,从 /\.(mov|mp4) 中删除限制

  { test: /\.html$/, loader: 'html-loader?attrs[]=video:src' },
  { test: /\.(mov|mp4)$/, loader: 'url-loader' },

请查看与here类似的问题。

还可以查看有关url-loader 和html-loader 的更多信息。

希望对你有帮助!!

【讨论】:

  • 通过直接传递 url 它返回一个 404。在 react 的土地上,它只有在我先导入文件时才有效。
  • 我已经添加了 webpack 配置,请检查一下
猜你喜欢
  • 1970-01-01
  • 2011-09-19
  • 2016-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多