微信小程序 絕對路徑 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

相關文章
相關標籤/搜索