Skip to content

Commit 82257e3

Browse files
committed
feat: server side resolve alias
1 parent 72668e7 commit 82257e3

File tree

3 files changed

+32
-1
lines changed

3 files changed

+32
-1
lines changed

packages/beidou-plugin-isomorphic/config/config.default.js

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1+
const path = require('path');
12

2-
module.exports = function () {
3+
module.exports = function (app) {
34
const config = {
45
/**
56
* JSDom polyfill, simulate browser environment in server
@@ -65,6 +66,10 @@ module.exports = function () {
6566
*/
6667

6768
universal: false,
69+
70+
alias: {
71+
client: path.join(app.baseDir, 'client'),
72+
},
6873
};
6974

7075
return {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const Module = require('module');
2+
const path = require('path');
3+
4+
module.exports = function handle(config) {
5+
const originalResolveFileName = Module._resolveFilename;
6+
const keys = Object.keys(config);
7+
Module._resolveFilename = function (request, parent) {
8+
for (let i = 0; i < keys.length; i += 1) {
9+
if (request === keys[i] || request.indexOf(`${keys[i]}/`) === 0) {
10+
request = path.normalize(`${config[keys[i]]}${request.substring(keys[i].length)}`);
11+
break;
12+
}
13+
}
14+
return originalResolveFileName.apply(this, [request, parent]);
15+
};
16+
};

packages/beidou-plugin-isomorphic/lib/isomorphic.js

+10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const path = require('path');
44
const fs = require('fs');
55
const Module = require('module');
6+
const resolveAlias = require('./alias');
67

78
function requireAssetsJson(filepath, logger) {
89
let json = {};
@@ -41,6 +42,15 @@ module.exports = function (app) {
4142
const baseDir = app.config.baseDir;
4243

4344
const logger = app.logger;
45+
46+
if (isomorphic.alias) {
47+
const alias = isomorphic.alias;
48+
if (alias && Object.keys(alias).length > 0) {
49+
app.logger.info('[beidou:plugin:isomorphic] isomorphic.alias detected: %o', alias);
50+
resolveAlias(alias);
51+
}
52+
}
53+
4454
if (isomorphic.universal) {
4555
const universal = Object.assign({
4656
context: baseDir,

0 commit comments

Comments
 (0)