微信小程序 绝对路径 require

根据 微信小程序开放文档javascript

参数 path 类型 string

须要引入模块文件相对于当前文件的相对路径,或npm模块名,或npm模块路径。不支持绝对路径java

总有一些公共js代码,须要放在一个统一的目录下,大部分状况咱们这样放npm

lib/base64.js
lib/moment.js
lib/api.js

合理组织过的 page 路径通常都不止一层,而后 page 里的 require小程序

require('../../../lib/moment.js');
require('../../../lib/api.js');

WTF,这简直逼死强迫症,没强迫症看着也嫌弃
不嫌弃的请直接窗口右上角按 X微信小程序

嫌弃完了,实在以为不能忍,寻求解决办法
最后找到的方法,不能说优雅,可是出乎意料的 简单 暴力 直接 有效api

只须要在 app.js 中增长 1 行代码,微信

App({
    // 真的就这一行
    require : function($uri){return require($uri)},
    onLaunch : function(){
    }
});

而后其余任何路径下的 js 以下app

// pages/admin/order/list/page.js
const app = getApp(); // 
// 除了不是 / 开头,这真的就是个绝对路径,让那些 ../../.. 见鬼去吧
const Api = app.require('lib/api.js');

Page({
    onLoad : function(){
    }
});
文章之外:

微信其实能够调整一下,默认有个 app.require 的相似实现
require 的 uri 是 / 开头的,内部使用 app.require
这样 require 直接就能够 支持绝对路径了ui

相关文章
相关标签/搜索