使用 pnpm workspace 创建项目;

- 发布:2023-12-12 10:31
- 更新:2023-12-13 10:57
- 阅读:283
产品分类: uniapp/H5
PC开发环境操作系统: Mac
PC开发环境操作系统版本号: Mac Intel
浏览器平台: Chrome
浏览器版本: 121
项目创建方式: CLI
CLI版本号: 2.0
操作步骤:
预期结果:
执行 pnpm run serve
可以正常编译并进行开发;
执行 pnpm run serve
可以正常编译并进行开发;
实际结果:
执行 pnpm run serve
后导致编译报错,提示缺少加载器(因为 code 为 Promise 的原因导致直接拼接字符串报错);
执行 pnpm run serve
后导致编译报错,提示缺少加载器(因为 code 为 Promise 的原因导致直接拼接字符串报错);
bug描述:
我想使用 pnpm workspace
进行创建 uniapp
项目,但是当我使用 vue create -p dcloudio/uni-preset-vue mobile
后在项目中进行运行项目。编译时提示 webpack loader 缺少,经过我的排查发现是 vue-tamplate-loader 加载器中发生的错误,不知道是什么原因导致返回值 code
为一个 Promise
对象,所以直接进行拼接的话就会发生错误,当我进行修正后代码运行正常。这种情况仅限于当我使用 pnpm workspace 模式创建项目时会发生,单独使用 vue create -p dcloudio/uni-preset-vue my-project
创建独立的项目并不会发生该情况;
项目结构为:
|- apps // 项目
|-- mobile // uniapp 项目
|-- ... // 其他项目
|- packages // 项目依赖包
|- packages.json // 根依赖
|- pnpm-workspace.yaml // 工作区描述文件


y***@163.com (作者)
- 在根目录添加
.npmrc
的shamefully-hoist=true
- 首先在创建工作空间创建
uni-app
项目 - 新创建的
uni-app
版本为2.0.2-3061420221215001
正常编译