在开发扫码小程序中,遇到胡坑“require() 默认不支持绝对路径”及其解决方案

在开发扫码小程序中,遇到胡坑"​​require() 默认不支持绝对路径"及其解决方案。

在微信小程序中,​require()默认不支持绝对路径​ ​(如/utils/store.js@/utils/store.js),只能使用相对路径(如../../utils/store.js)。

使用 resolveAlias 配置项用来自定义模块路径的映射规则。

配置了之后,会对 require 里的模块路径进行规则匹配并映射成配置的路径。

如果命中多条映射规则,则取最长的命中规则。

perl 复制代码
{
  "resolveAlias": {
    "~/*": "/*",
    "~/origin/*": "origin/*",
    "@utils/*": "utils/*",
    "subBUtils/*": "subpackageB/utils/*"
  }
}

注意

1、resolveAlias 进行的是路径匹配,其中的 key 和 value 须以 /* 结尾。

配置了上述路径映射规则,会做如下匹配并转换

  • ~/mod.js -> mod.js
  • ~/origin/mod.js -> origin/mod.js
  • @utils/mod.js -> utils/mod.js
  • subBUtils/mod.js -> subpackageB/utils/mod.js

2、如果在 project.config.json 中指定了 miniprogramRoot,则 /* 指代的根目录是 miniprogramRoot 对应的路径,而不是开发者工具项目的根目录。

然后使用别名引用:

ini 复制代码
const store = require('@utils/store.js'); // 等效于绝对路径

注意​ ​:此功能需要基础库版本 ​​2.12.0+​ ​,且仅支持require,不支持import

相关推荐
WYiQIU10 小时前
11月面了7.8家前端岗,兄弟们12月我先躺为敬...
前端·vue.js·react.js·面试·前端框架·飞书
谢尔登10 小时前
简单聊聊webpack摇树的原理
运维·前端·webpack
娃哈哈哈哈呀10 小时前
formData 传参 如何传数组
前端·javascript·vue.js
zhu_zhu_xia11 小时前
vue3+vite打包出现内存溢出问题
前端·vue
tsumikistep11 小时前
【前后端】接口文档与导入
前端·后端·python·硬件架构
行走的陀螺仪12 小时前
.vscode 文件夹配置详解
前端·ide·vscode·编辑器·开发实践
2503_9284115612 小时前
11.24 Vue-组件2
前端·javascript·vue.js
Bigger12 小时前
🎨 用一次就爱上的图标定制体验:CustomIcons 实战
前端·react.js·icon
谢尔登13 小时前
原来Webpack在大厂中这样进行性能优化!
前端·webpack·性能优化
cypking14 小时前
Vue 3 + Vite + Router + Pinia + Element Plus + Monorepo + qiankun 构建企业级中后台前端框架
前端·javascript·vue.js