天天看點

Error [ERR_REQUIRE_ESM] And Design Pro初始化報錯

Error [ERR_REQUIRE_ESM] And Design Pro初始化報錯

今天建立項目,用And Design Pro初始化的時候報錯,不能建立項目,如下圖

Error [ERR_REQUIRE_ESM] And Design Pro初始化報錯
D:\Code\front>pro create myapp
D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\create\generators\ant-design-pro\index.js:10
const sortPackage = require('sort-package-json');
                    ^

Error [ERR_REQUIRE_ESM]: require() of ES Module D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\nod    e_modules\sort-package-json\index.js from D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\creat    e\generators\ant-design-pro\index.js not supported.
Instead change the require of D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\node_modules\sort-pac    kage-json\index.js in D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\create\generators\ant-des    ign-pro\index.js to a dynamic import() which is available in all CommonJS modules.
    at Object.<anonymous> (D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\create\generators\an    t-design-pro\index.js:10:21)
    at D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\create\index.js:15:23
    at new Promise (<anonymous>)
    at runGenerator (D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\create\index.js:8:10)
    at run (D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\src\create\index.js:35:12)
    at Object.<anonymous> (D:\Program Files\nodejs\node_global\node_modules\@ant-design\pro-cli\cli.js:60:34) {
  code: 'ERR_REQUIRE_ESM'
}
           

然後去github檢視issues,原因是sort-package-json這個依賴的問題,找到了解決辦法。

解決方案

v5版本

1、使用 npm i @ant-design/pro-cli -g 安裝後,進入@ant-design/pro-cli 目錄下

Error [ERR_REQUIRE_ESM] And Design Pro初始化報錯

2、打開 package.json進行修改,在 deependencies 中添加

Error [ERR_REQUIRE_ESM] And Design Pro初始化報錯

3、然後再 pro-cli 目錄下 npm i

Error [ERR_REQUIRE_ESM] And Design Pro初始化報錯

之後再用 pro create xxxx 建立,就可以了