根據 微信小程序開放文檔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