umijs / dumi

📖 Static Site Generator for component library development
https://d.umijs.org
MIT License
3.56k stars 1.18k forks source link

bug: 非 umi 项目中使用 dumi,修改 APP_ROOT 后仍然加载 src/app.tsx #591

Closed onlyling closed 3 years ago

onlyling commented 3 years ago

Versions

Steps to reproduce

package.json

{
  "scripts": {
    "dumi": "cross-env APP_ROOT=dumi dumi dev",
    "dumi-build": "cross-env APP_ROOT=dumi dumi build"
  },
  "devDependencies": {
    "core-js": "^3.9.1",
    "cross-env": "^7.0.3",
    "dumi": "^1.1.9",
    "umi-plugin-react-native": "^0.4.0"
  }
}

参考仓库onlyling/xant

|-- config
|--|-- config.ts
|-- dumi
|--|-- docs
|--|--|-- index.md
|-- src
|--|-- app.tsx

## yarn dumi 
## 控制台没有任何报错

## 打开浏览器
## ReferenceError: require is not defined

ReferenceError: require is not defined Module../node_modules/unstated-next/dist/unstated-next.mjs ./src/unstated-next.tsx:13 10 | useContainer: () => Value 11 | } 12 | 13 | export function createContainer<Value, State = void>( 14 | useHook: (initialState?: State) => Value, 15 | ): Container<Value, State> { 16 | let Context = React.createContext<Value | null>(null)

结合 非 umi 项目启动 dumi 后提示 Error: register failed, invalid key xx from plugin src/app.ts 的 FQ,不像是配置、使用方式的问题。

使用参考:

What is Expected?

正常的渲染出 dumi/docs/index.md 文档

What is actually happening?

修改了 APP_ROOT 的路径,实际还是去加载了 src/app.tsx 文件。

dumi 文件夹下的 node_modules 无限嵌套?

WX20210318-144657@2x
xiaohuoni commented 3 years ago

为什么不给一个可以直接复现的 demo!!

xiaohuoni commented 3 years ago

umi-test.zip 在最简 demo 中, APP_ROOT 表现正常。

"scripts": {
    "start": "umi dev",
    "start-dev": "APP_ROOT=dev umi dev"
  },

src/app.js

export function render(oldRender) {
  console.log('src/app.js');
  oldRender();
}

dev/app.js

export function render(oldRender) {
  console.log('dev/app.js');
  oldRender();
}
onlyling commented 3 years ago

为什么不给一个可以直接复现的 demo!!

demo

变更

xiaohuoni commented 3 years ago

为什么不给一个可以直接复现的 demo!!

demo

变更

我看看 image

@onlyling 你给的 demo 可以运行

onlyling commented 3 years ago

为什么不给一个可以直接复现的 demo!!

demo 变更

我看看 image

@onlyling 你给的 demo 可以运行

有点奇怪,我运行后就是这样的。

打开 http://localhost:8000 就报错。

WX20210320-230703@2x

FireShot Capture 012 -  - localhost

onlyling commented 3 years ago

大概、可能找到问题了。

目前猜测是动态生成的依赖错误,莫名其妙就找到项目根目里面的 index.js 文件。重命名后,控制台出现错误。

Failed to compile with 1 errors 

This relative module was not found:

* ../../../../../.. in ./node_modules/@umijs/preset-dumi/lib/theme/hooks/useSearch.js

清除 dumi/.umi 文件夹,重新开始,浏览器能访问。

把项目根目录 index.js 文件重命名回来,重新开始,浏览器能访问。 @xiaohuoni