uni-app 使用 pnpm 管理依赖发现 build 命令失效,无法启动 dev-server
uni-app 使用 pnpm 管理依赖发现 build 命令失效,无法启动 dev-server
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows 10 专业版 19043.1266 | 2.0.1-34720220422001 | CLI |
产品分类:uniapp/H5
浏览器平台:Chrome
浏览器版本:Microsoft Edge 94.0.992.38
示例代码:
// vue.config.js
module.exports = {
chainWebpack: (config) => {
// symlinks
config.resolve.symlinks = false
},
.......
}
$ pnpm run info
> h5-welfare@0.1.0 info E:\WorkSpace\h5-welfare
> node node_modules/@dcloudio/vue-cli-plugin-uni/commands/info.js
uni-app v3.4.7
uni-app cli v2.0.1-34720220422001
Environment Info:
System:
OS: Windows 10
CPU: (4) x64 Intel(R) Core(TM) i5-7300HQ CPU @ 2.50GHz
Binaries:
Node: 16.14.2 - D:\Develop\nodejs\node.EXE
Yarn: Not Found
npm: 8.5.0 - D:\Develop\nodejs\npm.CMD
Browsers:
Edge: 44.19041.1266.0
npmPackages:
@dcloudio/types: * => 2.6.4
@dcloudio/uni-app-plus: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-automator: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-cli-i18n: ^2.0.1-34620220419001 => 2.0.1-34620220419001
@dcloudio/uni-cli-shared: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-h5: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-helper-json: * => 1.0.13
@dcloudio/uni-migration: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-mp-360: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-mp-alipay: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-mp-baidu: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-mp-qq: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-mp-toutiao: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-mp-vue: ^2.0.1-34720220422001 => 2.0.1-alpha-34620220415002
@dcloudio/uni-mp-weixin: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-quickapp-native: ^2.0.1-34720220422001 => 2.0.1-alpha-34620220415002
@dcloudio/uni-quickapp-webview: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-stat: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/uni-template-compiler: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/vue-cli-plugin-hbuilderx: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/vue-cli-plugin-uni: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/vue-cli-plugin-uni-optimize: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/webpack-uni-mp-loader: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@dcloudio/webpack-uni-pages-loader: ^2.0.1-34720220422001 => 2.0.1-34720220422001
@hap-toolkit/dsl-vue: 0.6.13
@vue/babel-helper-vue-jsx-merge-props: 1.2.1
@vue/babel-helper-vue-transform-on: 1.0.2
@vue/babel-plugin-jsx: 1.1.1
@vue/babel-plugin-transform-vue-jsx: 1.2.1
@vue/babel-preset-app: 4.5.17
@vue/babel-preset-jsx: 1.2.4
@vue/babel-sugar-composition-api-inject-h: 1.2.1
@vue/babel-sugar-composition-api-render-instance: 1.2.4
@vue/babel-sugar-functional-vue: 1.2.2
@vue/babel-sugar-inject-h: 1.2.2
@vue/babel-sugar-v-model: 1.2.3
@vue/babel-sugar-v-on: 1.2.3
@vue/cli-overlay: 4.5.17
@vue/cli-plugin-babel: ~4.5.0 => 4.5.17
@vue/cli-plugin-router: 4.5.17
@vue/cli-plugin-vuex: 4.5.17
@vue/cli-service: ~4.5.0 => 4.5.17
@vue/cli-shared-utils: 4.5.17
@vue/component-compiler-utils: 3.3.0
@vue/preload-webpack-plugin: 1.1.2
@vue/shared: ^3.0.0-rc.4 => 3.2.33
@vue/web-component-wrapper: 1.3.0
vue: ^2.6.11 => 2.6.14
vue-clipboard2: ^0.3.1 => 0.3.3
vue-hot-reload-api: 2.3.4
vue-lazyload: ^1.3.3 => 1.3.3
vue-loader: 15.9.8 (15.9.8)
vue-router: ^3.4.3 => 3.5.3
vue-style-loader: 4.1.3
vue-template-compiler: ^2.6.11 => 2.6.14
vue-template-es2015-compiler: 1.9.1
vuex: ^3.2.0 => 3.6.2
npmGlobalPackages:
@vue/cli: Not Found
操作步骤:
$ pnpm dev
预期结果:
正常启动 dev-server
实际结果:
Hyman[@T470P](/user/T470P) MINGW64 /e/WorkSpace/h5-welfare (master)
$ pnpm dev
> h5-welfare@0.1.0 dev E:\WorkSpace\h5-welfare
> cross-env NODE_ENV=development UNI_PLATFORM=h5 vue-cli-service uni-serve
请注意运行模式下,因日志输出、sourcemap以及未压缩源码等原因,性能和包体积,均不及发行模式。
Hyman[@T470P](/user/T470P) MINGW64 /e/WorkSpace/h5-welfare (master)
$
Hyman[@T470P](/user/T470P) MINGW64 /e/WorkSpace/h5-welfare (master)
$
更多关于uni-app 使用 pnpm 管理依赖发现 build 命令失效,无法启动 dev-server的实战教程也可以访问 https://www.itying.com/category-93-b0.html
请问解决了吗?
更多关于uni-app 使用 pnpm 管理依赖发现 build 命令失效,无法启动 dev-server的实战教程也可以访问 https://www.itying.com/category-93-b0.html
在使用 uni-app
开发项目时,如果你使用 pnpm
作为包管理器,可能会遇到 build
命令失效或无法启动 dev-server
的问题。这通常是由于 pnpm
的依赖管理方式与 uni-app
的构建工具不完全兼容所导致的。以下是一些可能的解决方案:
1. 确保 node_modules
正确安装
pnpm
使用符号链接来管理依赖,这可能会导致某些工具找不到依赖。你可以尝试删除 node_modules
目录并重新安装依赖:
rm -rf node_modules
pnpm install
2. 使用 --shamefully-hoist
选项
pnpm
默认不会将依赖提升到根目录,这可能会导致某些工具无法找到依赖。你可以使用 --shamefully-hoist
选项来提升依赖:
pnpm install --shamefully-hoist
3. 检查 uni-app
的依赖版本
确保你使用的 uni-app
版本与 pnpm
兼容。你可以尝试更新 uni-app
和相关依赖:
pnpm update uni-app
4. 使用 npm
或 yarn
作为替代
如果上述方法都无法解决问题,你可以考虑暂时使用 npm
或 yarn
作为包管理器:
# 删除 pnpm 的依赖
rm -rf node_modules
# 使用 npm 安装依赖
npm install
# 或者使用 yarn 安装依赖
yarn install
5. 检查 uni-app
的构建配置
确保你的 uni-app
项目配置正确,特别是 vue.config.js
或 vite.config.js
文件中的配置。你可以参考官方文档或社区中的配置建议进行调整。
6. 查看错误日志
如果 dev-server
无法启动,查看终端输出的错误日志,通常会有具体的错误信息。根据错误信息进行排查和修复。
7. 使用 pnpm
的 node-linker
配置
pnpm
提供了 node-linker
配置选项,可以改变依赖的链接方式。你可以尝试在 .npmrc
文件中添加以下配置:
node-linker=hoisted
然后重新安装依赖:
pnpm install
8. 检查 uni-app
的插件兼容性
有些 uni-app
插件可能与 pnpm
不完全兼容。如果你使用了某些插件,尝试暂时禁用它们,看看问题是否依然存在。
9. 使用 pnpm
的 --resolution-only
选项
如果依赖冲突导致问题,你可以尝试使用 pnpm
的 --resolution-only
选项来解决依赖冲突:
pnpm install --resolution-only