根据 微信小程序开放文档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