【问题标题】:Error: Invariant failed: Hash history needs a DOM错误:不变量失败:哈希历史需要一个 DOM
【发布时间】:2020-08-22 05:19:54
【问题描述】:

首先,为我糟糕的英语道歉,希望你能理解......

错误显示在这里:

ERROR in   Error: webpack-internal:///./node_modules/tiny-invariant/dist/tiny-invariant.esm.js:14
    throw new Error(prefix + ": " + (message || ''));
    ^
  Error: Invariant failed: Hash history needs a DOM

  - tiny-invariant.esm.js:14 invariant
    [.]/[tiny-invariant]/dist/tiny-invariant.esm.js:14:9

  - history.js:577 createHashHistory
    [.]/[history]/cjs/history.js:577:16

  - index.js:36 _default
    [.]/[dva]/lib/index.js:36:64

  - index.js:32 eval
    webpack-internal:///./src/index.js:32:53

  - index.html:7396 Module../src/index.js
    /Users/mac/Desktop/workspace/test/reproduce/code-reproduce/src/index.html:7396:1

  - index.html:21 __webpack_require__
    /Users/mac/Desktop/workspace/test/reproduce/code-reproduce/src/index.html:21:30

  - index.html:3 eval
    [.]/[html-webpack-plugin]/lib/loader.js!./src/index.html:3:34

  - index.html:5904 Object../node_modules/html-webpack-plugin/lib/loader.js!./src/index.html
    /Users/mac/Desktop/workspace/test/reproduce/code-reproduce/src/index.html:5904:1

  - index.html:21 __webpack_require__
    /Users/mac/Desktop/workspace/test/reproduce/code-reproduce/src/index.html:21:30

  - index.html:85
    /Users/mac/Desktop/workspace/test/reproduce/code-reproduce/src/index.html:85:18

理论上,项目在我的本地服务器上运行,它应该有 dom。

这是我的最小可重现存储库地址:

https://github.com/shauvet/code-reproduce/tree/dva-admin

步骤:

第 1 步:纱线 第二步:纱线开始

import './index.html'
import 'babel-polyfill'
import dva from 'dva'
import createLoading from 'dva-loading'
import { hashHistory } from 'dva/router'
import appMod from './models'
import router from './router'

// 1. Initialize
const app = dva()

app.use(createLoading())

// 2. Model
// app.model(require('./models/app'))
app.model(appMod)
// 3. Router
// app.router(require('./router'))
app.router(router)

// 4. Start
app.start('#root')

环境信息:

节点版本:12.16.2 操作系统版本:osx 10.15.4

【问题讨论】:

  • 需要明确的是,当我在项目构建目录中运行 webpack-dev-server 和 webpack 配置文件时会发生这种情况。
  • 谁能帮帮我?

标签: javascript reactjs webpack react-router


【解决方案1】:

最后,我在webpack中添加了HtmlPlugin:

new HtmlWebpackPlugin({
      // filename: 'index.html',
      template: 'src/index.html',
      inject: 'body'  // here
})

错误消失了。

【讨论】:

  • @Thunder Yean,我想应该是import entry js文件不正确造成的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 2018-12-26
  • 2018-07-20
  • 1970-01-01
  • 2019-04-28
  • 2010-12-21
  • 1970-01-01
相关资源
最近更新 更多