一直文件查找失败 刚新建的uni-app项目也不行

一直文件查找失败 刚新建的uni-app项目也不行

信息类别 详细信息
产品分类 uniapp/App
PC开发环境操作系统 Mac
PC开发环境操作系统版本号 macos 15.3
HBuilderX类型 正式
HBuilderX版本号 4.66
手机系统 Android
手机系统版本号 Android 11
手机厂商 华为
手机机型 荣耀play6t
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

<script>
import shp from 'shpjs'
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {  
},
methods: {  
}  
}
</script>

操作步骤:

  • 新建一个vue2项目
  • npm i shpjs
  • 然后 import shp from ‘shpjs’;

预期结果:

  • 导入正常使用

实际结果:

  • 报错 文件查找失败:‘but-unzip’ at node_modules/shpjs/lib/unzip.js:11

bug描述:

  • mac 新建一个项目
  • npm i shpjs
  • 然后 import shp from ‘shpjs’;
  • 编译直接报错 试了很多次


更多关于一直文件查找失败 刚新建的uni-app项目也不行的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

这应该是你的 npm 包的问题吧,对应位置有这个文件吗?

更多关于一直文件查找失败 刚新建的uni-app项目也不行的实战教程也可以访问 https://www.itying.com/category-93-b0.html


有检查过npm 同一个版本下 也有用vscode直接创建vue2项目试 在vscode环境下是成功的

这个错误是由于shpjs依赖的but-unzip模块在uni-app环境下无法正确解析导致的。以下是解决方案:

  1. 问题原因:
  • shpjs依赖的but-unzip模块使用了Node.js特有的API,在uni-app的webpack打包环境下无法正常工作
  • uni-app的webpack配置默认不支持某些Node.js核心模块
  1. 解决方案:
  • 使用shpjs的CDN版本代替npm安装
  • 在index.html中添加:
<script src="https://unpkg.com/shpjs@3.4.2/dist/shp.js"></script>
  1. 修改使用方式:
// 移除import语句
export default {
  methods: {
    async handleShpFile() {
      const shpData = await window.Shp(buffer); // 直接使用全局Shp对象
    }
  }
}
  1. 替代方案: 如果必须使用npm包,可以尝试:
npm install shapefile
回到顶部