uni-app 打包错误 Error: Cannot find module 'ts-loader'

uni-app 打包错误 Error: Cannot find module ‘ts-loader’

测试过的手机:

无法打包,没到这一步

示例代码:

package.json

{
  "name": "new3099",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "npm run dev:h5",
    "build": "npm run build:h5",
    "build:app-plus": "cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build",
    "build:custom": "cross-env NODE_ENV=production uniapp-cli custom",
    "build:h5": "cross-env NODE_ENV=production UNI_PLATFORM=h5 vue-cli-service uni-build",
    "build:mp-360": "cross-env NODE_ENV=production UNI_PLATFORM=mp-360 vue-cli-service uni-build",
    "build:mp-alipay": "cross-env NODE_ENV=production UNI_PLATFORM=mp-alipay vue-cli-service uni-build",
    "build:mp-baidu": "cross-env NODE_ENV=production UNI_PLATFORM=mp-baidu vue-cli-service uni-build",
    "build:mp-jd": "cross-env NODE_ENV=production UNI_PLATFORM=mp-jd vue-cli-service uni-build",
    "build:mp-kuaishou": "cross-env NODE_ENV=production UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build",
    "build:mp-lark": "cross-env NODE_ENV=production UNI_PLATFORM=mp-lark vue-cli-service uni-build",
    "build:mp-qq": "cross-env NODE_ENV=production UNI_PLATFORM=mp-qq vue-cli-service uni-build",
    "build:mp-toutiao": "cross-env NODE_ENV=production UNI_PLATFORM=mp-toutiao vue-cli-service uni-build",
    "build:mp-weixin": "cross-env NODE_ENV=production UNI_PLATFORM=mp-weixin vue-cli-service uni-build",
    "build:mp-xhs": "cross-env NODE_ENV=production UNI_PLATFORM=mp-xhs vue-cli-service uni-build",
    "build:quickapp-native": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-native vue-cli-service uni-build",
    "build:quickapp-webview": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview vue-cli-service uni-build",
    "build:quickapp-webview-huawei": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build",
    "build:quickapp-webview-union": "cross-env NODE_ENV=production UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build",
    "dev:app-plus": "cross-env NODE_ENV=development UNI_PLATFORM=app-plus vue-cli-service uni-build --watch",
    "dev:custom": "cross-env NODE_ENV=development uniapp-cli custom",
    "dev:h5": "cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve",
    "dev:mp-360": "cross-env NODE_ENV=development UNI_PLATFORM=mp-360 vue-cli-service uni-build --watch",
    "dev:mp-alipay": "cross-env NODE_ENV=development UNI_PLATFORM=mp-alipay vue-cli-service uni-build --watch",
    "dev:mp-baidu": "cross-env NODE_ENV=development UNI_PLATFORM=mp-baidu vue-cli-service uni-build --watch",
    "dev:mp-jd": "cross-env NODE_ENV=development UNI_PLATFORM=mp-jd vue-cli-service uni-build --watch",
    "dev:mp-kuaishou": "cross-env NODE_ENV=development UNI_PLATFORM=mp-kuaishou vue-cli-service uni-build --watch",
    "dev:mp-lark": "cross-env NODE_ENV=development UNI_PLATFORM=mp-lark vue-cli-service uni-build --watch",
    "dev:mp-qq": "cross-env NODE_ENV=development UNI_PLATFORM=mp-qq vue-cli-service uni-build --watch",
    "dev:mp-toutiao": "cross-env NODE_ENV=development UNI_PLATFORM=mp-toutiao vue-cli-service uni-build --watch",
    "dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch",
    "dev:mp-xhs": "cross-env NODE_ENV=development UNI_PLATFORM=mp-xhs vue-cli-service uni-build --watch",
    "dev:quickapp-native": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-native vue-cli-service uni-build --watch",
    "dev:quickapp-webview": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview vue-cli-service uni-build --watch",
    "dev:quickapp-webview-huawei": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-huawei vue-cli-service uni-build --watch",
    "dev:quickapp-webview-union": "cross-env NODE_ENV=development UNI_PLATFORM=quickapp-webview-union vue-cli-service uni-build --watch",
    "info": "node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js",
    "serve:quickapp-native": "node node_modules/@dcloudio/uni-quickapp-native/bin/serve.js",
    "test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i",
    "test:h5": "cross-env UNI_PLATFORM=h5 jest -i",
    "test:ios": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=ios jest -i",
    "test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i",
    "test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i"
  },
  "dependencies": {
    "@dcloudio/uni-app": "^2.0.2-3090920231225001",
    "@dcloudio/uni-app-plus": "^2.0.2-3090920231225001",
    "@dcloudio/uni-h5": "^2.0.2-3090920231225001",
    "@dcloudio/uni-i18n": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-360": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-alipay": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-baidu": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-jd": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-kuaishou": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-lark": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-qq": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-toutiao": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-vue": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-weixin": "^2.0.2-3090920231225001",
    "@dcloudio/uni-mp-xhs": "^2.0.2-3090920231225001",
    "@dcloudio/uni-quickapp-native": "^2.0.2-3090920231225001",
    "@dcloudio/uni-quickapp-webview": "^2.0.2-3090920231225001",
    "@dcloudio/uni-stacktracey": "^2.0.2-3090920231225001",
    "@dcloudio/uni-stat": "^2.0.2-3090920231225001",
    "@vue/shared": "^3.0.0",
    "core-js": "^3.8.3",
    "flyio": "^0.6.2",
    "vue": ">= 2.6.14 < 2.7",
    "vuex": "^3.2.0"
  },
  "devDependencies": {
    "@dcloudio/types": "^3.3.2",
    "@dcloudio/uni-automator": "^2.0.2-3090920231225001",
    "@dcloudio/uni-cli-i18n": "^2.0.2-3090920231225001",
    "@dcloudio/uni-cli-shared": "^2.0.2-3090920231225001",
    "@dcloudio/uni-helper-json": "*",
    "@dcloudio/uni-migration": "^2.0.2-3090920231225001",
    "@dcloudio/uni-template-compiler": "^2.0.2-3090920231225001",
    "@dcloudio/vue-cli-plugin-hbuilderx": "^2.0.2-3090920231225001",
    "@dcloudio/vue-cli-plugin-uni": "^2.0.2-3090920231225001",
    "@dcloudio/vue-cli-plugin-uni-optimize": "^2.0.2-3090920231225001",
    "@dcloudio/webpack-uni-mp-loader": "^2.0.2-3090920231225001",
    "@dcloudio/webpack-uni-pages-loader": "^2.0.2-3090920231225001",
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "babel-plugin-import": "^1.11.0",
    "cross-env": "^7.0.2",
    "jest": "^25.4.0",
    "postcss-comment": "^2.0.0",
    "sass": "^1.49.8",
    "sass-loader": "^8.0.2",
    "vue-template-compiler": ">= 2.6.14 < 2.7"
  },
  "browserslist": [
    "Android >= 4.4",
    "ios >= 9"
  ],
  "uni-app": {
    "scripts": {}
  }
}

npm info

D:\Programs\nvm\npm\yarn.cmd run info
yarn run v1.22.18
$ node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js
uni-app v3.99
uni-app cli v2.0.2-3090920231225001

Environment Info:

  System:                                                                                                   
    OS: Windows 10                                                                                          
    CPU: (4) x64 Intel(R) Core(TM) i5-4590 CPU @ 3.30GHz                                                    
  Binaries:                                                                                                 
    Node: 14.18.2 - C:\Users\ADMINI~1\AppData\Local\Temp\yarn--1708609005798-0.016346315983656545\node.CMD  
    Yarn: 1.22.18 - C:\Users\ADMINI~1\AppData\Local\Temp\yarn--1708609005798-0.016346315983656545\yarn.CMD  
    npm: 6.14.17 - D:\Programs\nodejs\npm.CMD                                                               
  Browsers:                                                                                                 
    Edge: Not Found                                                                                         
  npmPackages:                                                                                              
    @dcloudio/types: ^3.3.2 => 3.4.7                                                                        
    @dcloudio/uni-app: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001                                    
    @dcloudio/uni-app-plus: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001                               
    @dcloudio/uni-app-plus-nvue:  0.0.1                                                                     
    @dcloudio/uni-app-plus-nvue-v8:  0.0.1  
    @dcloudio/uni-automator: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-cli-i18n: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-cli-shared: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-h5: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-helper-json: * => 1.0.13  
    @dcloudio/uni-i18n: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-migration: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-360: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-alipay: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-baidu: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-jd: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-kuaishou: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-lark: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-qq: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-toutiao: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-vue: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-weixin: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-mp-xhs: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-quickapp-native: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-quickapp-webview: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-stacktracey: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-stat: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/uni-template-compiler: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/vue-cli-plugin-hbuilderx: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/vue-cli-plugin-uni: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/vue-cli-plugin-uni-optimize: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/webpack-uni-mp-loader: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @dcloudio/webpack-uni-nvue-loader:  0.0.1  
    @dcloudio/webpack-uni-pages-loader: ^2.0.2-3090920231225001 => 2.0.2-3090920231225001  
    @hap-toolkit/dsl-vue:  0.6.13  
    @vue/babel-helper-vue-jsx-merge-props:  1.4.0  
    @vue/babel-helper-vue-transform-on:  1.2.1  
    @vue/babel-plugin-jsx:  1.2.1  
    @vue/babel-plugin-resolve-type:  1.2.1  
    @vue/babel-plugin-transform-vue-jsx:  1.4.0  
    @vue/babel-preset-app:  5.0.8  
    @vue/babel-preset-jsx:  1.4.0  
    @vue/babel-sugar-composition-api-inject-h:  1.4.0  
    @vue/babel-sugar-composition-api-render-instance:  1.4.0  
    @vue/babel-sugar-functional-vue:  1.4.0  
    @vue/babel-sugar-inject-h:  1.4.0  
    @vue/babel-sugar-v-model:  1.4.0  
    @vue/babel-sugar-v-on:  1.4.0  
    @vue/cli-overlay:  5.0.8  
    @vue/cli-plugin-babel: ~5.0.0 => 5.0.8  
    @vue/cli-plugin-router:  5.0.8  
    @vue/cli-plugin-vuex:  5.0.8  
    @vue/cli-service: ~5.0.0 => 5.0.8  
    @vue/cli-shared-utils:  5.0.8  
    @vue/compiler-core:  3.4.19  
    @vue/compiler-dom:  3.4.19  
    @vue/compiler-sfc:  3.4.19  
    @vue/compiler-ssr:  3.4.19  
    @vue/component-compiler-utils:  3.3.0 (3.3.0)  
    @vue/composition-api:  1.7.0  
    @vue/devtools-api:  6.0.0-beta.15  
    @vue/shared: ^3.0.0 => 3.4.19  
    @vue/web-component-wrapper:  1.3.0  
    mpvue-page-factory:  1.0.1  
    mpvue-template-compiler:  1.0.13  
    uni-h5-vue:  2.6.10  
    uni-mp-vue:  2.6.10  
    vue: >= 2.6.14 < 2.7 => 2.6.14  
    vue-hot-reload-api:  2.3.4  
    vue-loader:  17.4.2 (15.11.1, 15.11.1, 17.4.2)  
    vue-router:  3.0.1  
    vue-style-loader:  4.1.3 (4.1.3)  
    vue-template-compiler: >= 2.6.14 < 2.7 => 2.6.14 (2.7.16, 2.6.14)  
    vue-template-es2015-compiler:  1.9.1  
    vue3:  1.0.0  
    vuex: ^3.2.0 => 3.6.2 (3.6.2)  
  npmGlobalPackages:  
    @vue/cli: Not Found  

Done in 6.93s.

进程已结束,退出代码为 0

操作步骤:

升级到2.0.2-3090920231225001后运行build:app-plus

预期结果:

正常构建

实际结果:

报错信息如下

D:\Programs\nvm\npm\yarn.cmd run build:app-plus
yarn run v1.22.18
$ cross-env NODE_ENV=production UNI_PLATFORM=app-plus vue-cli-service uni-build

已开启 uni统计2.0 版本

【重要】因 HBuilderX 3.4.9 版本起,uni统计2.0 调整了安卓端 deviceId 获取方式,导致 uni统计2.0 App-Android平台部分统计数据不准确。如使用了HBuilderX 3.4.9 - 3.6.4版本且开通了uni统计2.0的应用,需要使用HBuilderX3.6.7及以上版本重新发布应用并升级 uniAdmin 云函数解决,详见:https://ask.dcloud.net.cn/article/40097

3.99

✔  开始编译当前项目至 app-plus 平台...
 ERROR  Error: Cannot find module 'ts-loader'
        Require stack:
        - E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-hbuilderx\build\webpack.nvue.conf.js
        - E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-uni\commands\build.js
        - E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-uni\index.js
        - E:\Works\uni\new3090920231225001\node_modules\@vue\cli-service\lib\Service.js
        - E:\Works\uni\new3090920231225001\node_modules\@vue\cli-service\bin\vue-cli-service.js
Error: Cannot find module 'ts-loader'
Require stack:
- E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-hbuilderx\build\webpack.nvue.conf.js
- E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-uni\commands\build.js
- E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-uni\index.js
- E:\Works\uni\new3090920231225001\node_modules\@vue\cli-service\lib\Service.js
- E:\Works\uni\new3090920231225001\node_modules\@vue\cli-service\bin\vue-cli-service.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._resolveFilename (E:\Works\uni\new3090920231225001\node_modules\module-alias\index.js:49:29)
    at Function.resolve (internal/modules/cjs/helpers.js:99:19)
    at Object.<anonymous> (E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-hbuilderx\build\webpack.nvue.conf.js:359:21)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:93:18)
    at build (E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-uni\commands\build.js:182:25)
    at async E:\Works\uni\new3090920231225001\node_modules\@dcloudio\vue-cli-plugin-uni\commands\build.js:80:5
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

更多关于uni-app 打包错误 Error: Cannot find module 'ts-loader'的实战教程也可以访问 https://www.itying.com/category-93-b0.html

16 回复

HBuilderX 4.02.2024030621-alpha 已修复。

更多关于uni-app 打包错误 Error: Cannot find module 'ts-loader'的实战教程也可以访问 https://www.itying.com/category-93-b0.html


正式版啥时候出呐

按官网模板新建的hello-uni-app也是如此,急!

稍等 我转给负责 cli打包的同事看下

回复 DCloud_云服务_LQ: 谢谢,因为应用市场审核需要一点时间,问题找了很久也无法解决,就比较急

回复 DCloud_云服务_LQ: 有信吗?问题能重现吗?

感谢反馈,已确认问题,后续会修复。你可以在根目录下install ts-loader临时解决。
临时解决方案: 把刚才下载的依赖卸载掉,替换附件文件到/node_modules/@dcloudio/vue-cli-plugin-hbuilderx/build/,然后重新运行。

你好,yarn add -D ts-loader typescript后确实能跑起来,但是多出很多webpack相关的警告,还有这种 warning in ./src/uni_modules/mescroll-uni/components/mescroll-uni/mescroll-uni.vue

The requested module ‘./mescroll-uni.vue?vue&type=script&lang=js&’ contains conflicting star exports for the name ‘__esModule’ with the previous requested module ‘./mescroll-uni.vue?vue&type=renderjs&module=renderBiz&lang=js&’

并且导入真机运行仍然显示不出来

最近几个版本webpack版本是有升级吗,能回退吗?项目太大,这些改动很难找到原因解决的

回复 华冬人工智能: 前两个版本vue2 nvue支持了ts,可能在cli工程中有些兼容性问题,我这边再排查下

回复 华冬人工智能: 已更新回复,再试试

回复 YUANRJ: 你好,请问一下为什么我使用subnvue就报错ERROR Error: Cannot find module ‘ts-loader’ 10:43:05.252 Require stack: 10:43:05.256 - D:\Vue2\HbuilderX\练习\11.22\shop\wowoDigitalman\node_modules@dcloudio\vue-cli-plugin-hbuilderx\build\webpack.nvue.conf.js 10:43:05.278 - D:\Vue2\HbuilderX\练习\11.22\shop\wowoDigitalman\node_modules@dcloudio\vue-cli-plugin-uni\commands\build.js 10:43:05.289 - D:\Vue2\HbuilderX\练习\11.22\shop\wowoDigitalman\node_modules@dcloudio\vue-cli-plugin-uni\index.js 10:43:05.304 - D:\Vue2\HbuilderX\练习\11.22\shop\wowoDigitalman\node_modules@vue\cli-service\lib\Service.js 10:43:05.304 - D:\Vue2\HbuilderX\练习\11.22\shop\wowoDigitalman\node_modules@vue\cli-service\bin\vue-cli-service.js 是cli项目,如果不使用subnvue就不报错,是什么问题呢

回复 常乐Y: 你解决了吗?

在使用 uni-app 进行项目打包时,如果遇到 Error: Cannot find module 'ts-loader' 错误,通常是因为项目中缺少 ts-loader 依赖包,或者依赖包没有正确安装。以下是一些可能的解决方案:

1. 安装 ts-loader

确保项目中已经安装了 ts-loader。你可以通过以下命令安装:

npm install ts-loader --save-dev

或者使用 Yarn:

yarn add ts-loader --dev

2. 检查 package.json

确保 package.json 文件中包含了 ts-loader 作为开发依赖。它应该类似于以下内容:

"devDependencies": {
  "ts-loader": "^9.2.6",
  // 其他依赖
}

3. 清除缓存并重新安装依赖

有时候,依赖包可能没有正确安装。你可以尝试清除 npm 或 Yarn 的缓存,并重新安装所有依赖:

npm cache clean --force
npm install

或者使用 Yarn:

yarn cache clean
yarn install

4. 检查 TypeScript 配置

确保你的项目中已经正确配置了 TypeScript。检查 tsconfig.json 文件是否存在,并且配置正确。

5. 检查 webpack 配置

如果你自定义了 webpack 配置,确保在配置中正确引入了 ts-loader。例如:

module.exports = {
  // 其他配置
  module: {
    rules: [
      {
        test: /\.ts$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },
      // 其他规则
    ],
  },
};

6. 检查 Node.js 和 npm 版本

确保你的 Node.js 和 npm 版本与项目要求的版本兼容。你可以通过以下命令检查版本:

node -v
npm -v
回到顶部