在开发扫码小程序中,遇到胡坑“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

相关推荐
街尾杂货店&1 小时前
css - 实现三角形 div 容器,用css画一个三角形(提供示例源码)简单粗暴几行代码搞定!
前端·css
顺凡1 小时前
删一个却少俩:Antd Tag 多节点同时消失的原因
前端·javascript·面试
小白路过1 小时前
CSS transform矩阵变换全面解析
前端·css·矩阵
爬山算法1 小时前
Redis(110)Redis的发布订阅机制如何使用?
前端·redis·bootstrap
REDcker1 小时前
前端打包工具 - Rollup 打包工具笔记
前端·笔记
前端大卫1 小时前
动态监听DOM元素高度变化
前端·javascript
前端大卫2 小时前
Webpack 老项目的优化实践
前端
开利网络2 小时前
合规底线:健康产品营销的红线与避坑指南
大数据·前端·人工智能·云计算·1024程序员节
yinuo2 小时前
纯CSS&JS实现:丝滑渐变过渡的动态导航栏
前端
qq. 28040339842 小时前
vue介绍
前端·javascript·vue.js