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
正式版啥时候出呐
按官网模板新建的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


