arco-design / arco-design-pro-vue

An out-of-the-box solution to quickly build enterprise-level applications based on Arco Design.
https://pro.arco.design
MIT License
1.36k stars 280 forks source link

arco init hello-arco-pro报错Failed to copy project content #127

Open AdvanceOrange opened 2 years ago

AdvanceOrange commented 2 years ago

Basic Info

What is expected?

正确初始化项目

Steps to reproduce

  1. 命令行输入 arco init hello-arco-pro
  2. 选择Vue > Arco Pro 项目 > 完整项目
  3. √ 获取项目模板成功 × 模板内容拷贝失败

日志如下: Error: Failed to copy project content. npm WARN config global --global, --local are deprecated. Use --location=global instead.

at module.exports (C:\Users\***\.arco_template_cache\1655859276168\node_modules\arco-design-pro-vue\.arco-cli\init.js:25:13)
at C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\arco-cli-create-project\lib\index.js:129:23
at Generator.next (<anonymous>)
at fulfilled (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\arco-cli-create-project\lib\index.

js:5:58) at processTicksAndRejections (node:internal/process/task_queues:96:5) Error: EBUSY: resource busy or locked, rmdir 'C:\Users***.arco_template_cache\1655859276168\node_modules\arco-design-pro-vue' node:fs:1180 return handleErrorFromBinding(ctx); ^

Extra info

node版本:v16.15.1 npm版本:8.11.0 npx版本:8.11.0

AdvanceOrange commented 2 years ago

补充:arco-cli版本: v1.27.1

sHow8e commented 2 years ago

@AdvanceOrange hihi 如果重复初始化也没有成功,可能是cli的问题。可以降级试试(我本地v1.26.1),也可以到 arco-cli 这里提Pr哈。3q

YangYouYong commented 2 years ago

@sHow8e 同样的报错, 试了降级arco-cli 到1.26.1 仍然有该报错. 尝试更换项目模版为Lerna Monorepo 项目, 可以正常创建. 可能是Arco Pro 项目 完整版的项目模版有问题

sHow8e commented 2 years ago

@YangYouYong hi 也是报的和上述一样的错误么?

AdvanceOrange commented 2 years ago

@sHow8e 降级后仍然报相同的错误

sHow8e commented 2 years ago

@AdvanceOrange 报错信息是?

AdvanceOrange commented 2 years ago

@sHow8e

PS C:\Users\***\Desktop\study_vue\hello-arco-pro> arco init hello-arco-pro

        ___                    ____            _
       /   |  ______________  / __ \___  _____(_)___ _____
      / /| | / ___/ ___/ __ \/ / / / _ \/ ___/ / __ `/ __ \
     / ___ |/ /  / /__/ /_/ / /_/ /  __(__  ) / /_/ / / / /
    /_/  |_/_/   \___/\____/_____/\___/____/_/\__, /_/ /_/
                                             /____/

                                                v1.26.1

? 请选择你希望使用的技术栈 Vue
? 请选择所要创建项目的类型 Arco Pro 项目
? 请选择 Arco Pro 模板 完整版(包含所有页面)

正在初始化项目于 C:\Users\***\Desktop\study_vue\hello-arco-pro\hello-arco-pro
√ 获取项目模板成功
× 模板内容拷贝失败
Error: Failed to copy project content.
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

    at module.exports (C:\Users\***\.arco_template_cache\1655866434222\node_modules\arco-design-pro-vue\.arco-cli\init.js:25:13)
    at C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\arco-cli-create-project\lib\index.js:129:23
    at Generator.next (<anonymous>)
    at fulfilled (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\arco-cli-create-project\lib\index.js:5:58)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
Error: EBUSY: resource busy or locked, rmdir 'C:\Users\***\.arco_template_cache\1655866434222\node_modules\arco-design-pro-vue'
node:fs:1180
  return handleErrorFromBinding(ctx);
         ^

Error: EBUSY: resource busy or locked, rmdir 'C:\Users\***\.arco_template_cache\1655866434222\node_modules\arco-design-pro-vue'
    at Object.rmdirSync (node:fs:1180:10)
    at rmdirSync (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:264:13)
    at rimrafSync (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:243:7)
    at C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:279:39
    at Array.forEach (<anonymous>)
    at rmkidsSync (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:279:26)
    at rmdirSync (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:269:7)
    at rimrafSync (C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:243:7)
    at C:\Program Files\node-v16.15.1-win-x64\node_modules\node_global\node_modules\arco-cli\node_modules\fs-extra\lib\remove\rimraf.js:279:39
    at Array.forEach (<anonymous>) {
  errno: -4082,
  syscall: 'rmdir',
  code: 'EBUSY',
  path: 'C:\\Users\\***\\.arco_template_cache\\1655866434222\\node_modules\\arco-design-pro-vue'
}
sHow8e commented 2 years ago

@AdvanceOrange 看了下面板。Pro的模板是已经拉取回来了。下边的提示”Error: EBUSY: resource busy or locked, rmdir“ 看起来像是读写权限的问题。可以针对这个提示去进行搜索。如果还是无法解决。可以把问题反馈到arco-cli哈。

YangYouYong commented 2 years ago

✔ 获取项目模板成功 ✖ 模板内容拷贝失败 Error: Failed to copy project content. npm WARN config production Use --omit=dev instead.

at module.exports (/Users/xxx/.arco_template_cache/1655866634338/node_modules/arco-design-pro-vue/.arco-cli/init.js:25:13)
at /usr/local/lib/node_modules/arco-cli/node_modules/arco-cli-create-project/lib/index.js:129:23
at Generator.next (<anonymous>)
at fulfilled (/usr/local/lib/node_modules/arco-cli/node_modules/arco-cli-create-project/lib/index.js:5:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5)

这是mac 端的报错
sHow8e commented 2 years ago

@AdvanceOrange 可以试试 npm cache clean 清除一下缓存。

sHow8e commented 2 years ago

@YangYouYong 报错的完整信息麻烦贴一下。3q

AdvanceOrange commented 2 years ago

@sHow8e 谢谢,各种方式都尝试过了,在StackOverflow上有一些解决方案,但是都不适用

AdvanceOrange commented 2 years ago

@sHow8e 总算成功运行了,说说我的步骤 我的nodejs和npm的版本都过高了,将nodejs版本由v16.15.1 降低至 v16.13.1后我得到了新的错误,它来自npm

While resolving: arco-design-pro-vue@1.0.0
Found: eslint@8.7.0
node_modules/eslint
  dev eslint@"^8.7.0" from the root project

解决方法是需要在npm i 后增加参数 --legacy-peer-deps

sHow8e commented 2 years ago

@AdvanceOrange 我这边node版本是v16.13.0 同时我切到v16.15.1依旧表现正常。有点玄学~ 后续我保持关注一下。3q

zmb4973992 commented 2 years ago

我也遇到了相同的问题。如果是win11系统的话,更换目录,不要使用中文路径可以解决。 如果还不行,就放在磁盘的根目录下,比如c、d、e盘的根目录,可以解决。

ClearLiF commented 2 years ago

我也遇到这个情况了 而且我也是node 高版本

LittleFive27 commented 1 year ago

我也遇到了相同的问题。如果是win11系统的话,更换目录,不要使用中文路径可以解决。 如果还不行,就放在磁盘的根目录下,比如c、d、e盘的根目录,可以解决。

perfect

pausermake commented 1 year ago

我也出现了同样的问题,我是win11 node: 16.15.1 npm 8.11.0

pausermake commented 1 year ago

我也遇到了相同的问题。如果是win11系统的话,更换目录,不要使用中文路径可以解决。 如果还不行,就放在磁盘的根目录下,比如c、d、e盘的根目录,可以解决。

你指的是 init的目录吗? 我尝试过在根目录下执行 arco init xxx 依然是获取模板成功模板内容拷贝失败

LittleFive27 commented 1 year ago

我也遇到了相同的问题。如果是win11系统的话,更换目录,不要使用中文路径可以解决。如果还不行,就放在磁盘的根目录下,比如c、d、e盘的根目录,可以解决。

你指的是 init的目录吗? 我尝试过在根目录下执行 arco init xxx 依然是获取模板成功模板内容拷贝失败

是的,整个项目目录。你在D盘执行arco命令试试

pausermake commented 1 year ago

我也遇到了相同的问题。如果是win11系统的对话,更换目录,不要使用中文路径可以解决。如果还不行,就可以放磁盘的根目录下,比如c、d、e盘的盘。

你指的是init的目录吗?

是的,整个项目目录。你在D盘执行arco命试

我在d盘根目录执行,也是一样的情况。

pausermake commented 1 year ago

我在node 16.15.1 也有同样的问题,但是我将node升级到18.15.0 正常了。

Leslie622 commented 10 months ago

我也遇到了相同的问题。如果是win11系统的话,更换目录,不要使用中文路径可以解决。 如果还不行,就放在磁盘的根目录下,比如c、d、e盘的根目录,可以解决。

这个可以