dataease搭建,编译打包 mobile:npm run build:stage报错ERROR Failed to compile with 2 errors

问题贴,用源码搭建dataease的时候,到编译运行的那里下方地址,然后运行编译打包 mobile:npm run build:stage报错如下图片

https://dataease.io/docs/dev_manual/dev_deployment/compile/
 ERROR  Failed to compile with 2 errors                                                                                                                                                                                                      下午7:30:35

 error  in ./src/common/js/request/index.js

Module parse failed: Unexpected token (50:10)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
 * ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js
You may need an additional loader to handle the result of these loaders.
|     msg = error.message;
|   }
>   if (msg?.startsWith('MultiLoginError')) {
|     return Promise.reject(error);
|   }

 @ ./src/api/panel.js 1:0-42 7:9-16 15:9-16 23:9-16 30:9-16 37:9-16 45:9-16 52:9-16 59:9-16 66:9-16
 @ ./node_modules/babel-loader/lib!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--13-1!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader??ref--16-0!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib??vue-loader-options!./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-scoped-loader!./src/pages/tabBar/home/index.nvue?vue&type=script&lang=js&
 @ ./src/pages/tabBar/home/index.nvue?vue&type=script&lang=js&
 @ ./src/pages/tabBar/home/index.nvue
 @ ./src/pages.json
 @ ./src/main.js
 @ multi ./src/main.js

 error  in ./src/pages/login/index.vue?vue&type=script&lang=js&

Module parse failed: Unexpected token (88:16)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
 * ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js
 * ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js
 * ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/using-components.js
 * ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js
 * ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-scoped-loader/index.js
You may need an additional loader to handle the result of these loaders.
|         this.loginBtnLoading = false;
|         let msg = error.response.data.message;
>         if (msg?.startsWith('MultiLoginError')) {
|           msg = this.$t('login.multiLogin');
|         }

 @ ./src/pages/login/index.vue?vue&type=script&lang=js& 1:0-615 1:631-634 1:636-1248 1:636-1248
 @ ./src/pages/login/index.vue
 @ ./src/pages.json
 @ ./src/main.js
 @ multi ./src/main.js

 ERROR  Build failed with errors.

img

根据您提供的信息,看起来您在尝试使用DataEase进行移动应用程序的编译和打包时遇到了错误。错误消息显示"Failed to compile with 2 errors",这意味着在编译过程中出现了两个错误。

要解决这个问题,我建议您按照以下步骤进行操作:

  1. 首先,请确保您的npm(Node Package Manager)已经正确安装并且可用。您可以在终端或命令提示符中运行npm -v来检查版本号,确保您使用的是最新版本的npm。
  2. 检查您的项目依赖项是否正确安装。在项目根目录下运行npm install,以确保所有依赖项都已正确安装。
  3. 检查项目的构建配置文件(通常是webpack.config.jspackage.json中的scripts部分)。确保构建配置正确无误,并且与您的项目需求匹配。
  4. 检查项目中是否存在语法错误或代码问题。您可以查看终端或命令提示符中的错误消息,以了解更多关于问题的详细信息。
  5. 如果您使用的是第三方库或依赖项,请确保它们已正确配置并且版本兼容。您可以尝试更新或更换这些依赖项,以查看是否可以解决问题。
  6. 确保您的开发环境正确设置,并且您的操作系统和相关软件都是最新版本。有时,旧版本的操作系统或软件可能会出现兼容性问题。

如果您仍然遇到问题,我建议您提供更多关于错误的详细信息,例如错误消息、终端输出或构建配置文件的内容。这将有助于我们更好地理解和帮助您解决问题。

原因

npm第三方库报错
一般是node版本问题,或者npm缓存问题

解决方法

1、切换到node几个版本都试下,使用node 14、node 16、node 18版本分别试下
2、清除缓存后安装

# 手动删除node_modules
npm cache clean --force
npm i --registry https://registry.npm.taobao.org
npm run build

还有问题的话,发下你安装的第三方库的步骤网站,我本地测试下。

如有问题及时沟通
如有帮助欢迎采纳

TechWhizKid参考GPT回答:

从错误信息看,编译失败的原因是你的项目中使用了一些不兼容的 JavaScript 语法。

主要是 startsWith 方法在你使用的 babel 预设中还不支持。startsWith 是 ES2022 新增的字符串方法。

可以通过以下两种方式解决:

  1. 升级 babel 相关预设,例如升级到 latest 版本:
npm install @babel/preset-env@latest --save-dev

然后在 babel.config.js 中配置:

presets: ['@babel/preset-env']
  1. 不使用 startsWith 方法,改用兼容的实现,例如:
if (msg.indexOf('MultiLoginError') === 0) {
  // ...
}

总之,需要确保用到的 JavaScript 语法与 babel 预设中的兼容版本一致,或者升级 babel 预设支持更多新语法。

另外,也要检查下 webpack 的版本是否过低,需要同步升级到适配的版本。

参考gpt:
结合自己分析给你如下建议:
dataease 编译报错的原因可能有以下几种:
您的 node.js 版本过低,不支持可选链操作符(?.)。您可以尝试升级您的 node.js 版本到最新的稳定版,或者使用 babel 插件来转换可选链操作符。
您的 npm 源设置有问题,导致无法下载一些依赖包。您可以尝试将 npm 源替换为国内的源,或者使用 cnpm 来安装依赖包。
您的 dataease 项目源码分支不是已发布的稳定分支,而是开发阶段的分支,可能存在一些未解决的问题。您可以尝试切换到 v1.0、v1.1 等已发布分支的代码,或者下载 dataease 的离线安装包来安装3。

应该是node版本不兼容

换个稳定版本的分支,别用最新版本的,都处于开发阶段

node版本不兼容吧,换个合适的版本

再查看版本吧,这种问题其实比较常见,node版本换成低版本试试

有一个是index.vue的语法错误。错误信息指出在文件中的第88行第16个字符有一个意外的token。同样,这可能是由于使用了不支持的语法或者未定义的变量导致的。

参考gpt

  1. 检查依赖项:首先,请确保您已经正确安装了所有必需的依赖项。您可以查看DataEase的官方文档或README文件,了解所需的依赖项,并按照说明进行安装。

  2. 清除缓存:有时候编译错误可能是由于缓存问题引起的。您可以尝试清除npm缓存,然后重新运行编译命令。可以使用以下命令清除npm缓存:

    npm cache clean --force
    
  3. 更新依赖项:如果您的依赖项版本过旧,可能会导致编译错误。您可以尝试更新所有依赖项到最新版本,并重新运行编译命令。可以使用以下命令更新依赖项:

    npm update
    
  4. 检查配置文件:请确保您的配置文件中的所有路径和设置都是正确的。有时候错误的配置可能导致编译错误。

【以下回答由 GPT 生成】

根据给出的错误信息,问题出现在./src/common/js/request/index.js文件和./src/api/panel.js文件中。

对于第一个错误,可能是由于代码中的语法错误导致的编译失败。可以通过检查./src/common/js/request/index.js文件中的语法错误并进行修复来解决问题。可以使用lint工具,如ESLint来检查和修复语法错误。

对于第二个错误,可能是由于在panel.js文件中引入了不兼容的模块或依赖关系导致的编译错误。可以尝试使用更旧或更新的版本的这些模块来解决问题。还可以检查导入的模块是否正确,确保文件路径正确并且模块已经正确安装。

总体而言,解决这个问题的步骤如下:

  1. 检查./src/common/js/request/index.js文件中的语法错误,并使用lint工具进行修复。
  2. 检查./src/api/panel.js文件中的依赖关系和引入的模块,确保它们和编译环境兼容。
  3. 如果存在模块依赖的问题,尝试安装更旧或更新的版本来解决兼容性问题。
  4. 确保所有的模块和依赖项都已经正确安装,并且文件路径是正确的。
  5. 重新运行npm run build:stage命令,查看是否仍出现错误。

如果上述步骤不能解决问题,可能需要查看更详细的错误日志或咨询dataease的官方文档或支持渠道以获取更具体的帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^