共计 677 个字符,预计需要花费 2 分钟才能阅读完成。
根据 微信小程序开放文档
参数
path
类型string
需要引入模块文件相对于当前文件的
相对路径
,或 npm 模块名,或 npm 模块路径。不支持绝对路径
总有一些公共 js 代码,需要放在一个统一的目录下,大部分情况我们这样放
lib/base64.js
lib/moment.js
lib/api.js
合理组织过的 page 路径一般都不止一层,然后 page 里的 require
require(‘../../../lib/moment.js’);
require(‘../../../lib/api.js’);
WTF,这简直逼死强迫症,没强迫症看着也嫌弃 不嫌弃的请直接窗口右上角按 X
嫌弃完了,实在觉得不能忍,寻求解决办法
最后找到的方法,不能说优雅,但是出乎意料的 简单
暴力
直接
有效
只需要在 app.js
中增加 1 行代码,
App({
// 真的就这一行
require : function($uri){return require($uri)},
onLaunch : function(){}
});
然后其他任何路径下的 js 如下
// 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 直接就可以 支持绝对路径了
正文完