Skip to content

Commit c34806b

Browse files
author
sky
committed
feat: compatible @easy-team mode
1 parent 15e3efa commit c34806b

2 files changed

Lines changed: 32 additions & 10 deletions

File tree

.travis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@ node_js:
44
- '6'
55
- '8'
66
- '10'
7+
before_install:
8+
- npm i npminstall -g
79
install:
8-
- npm i npminstall && npminstall
10+
- npminstall
911
script:
1012
- npm run ci
1113
after_script:

lib/utils.js

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
'use strict';
22
const path = require('path');
33
const fs = require('fs');
4-
const imgRegex = /\.(png|jpe?g|gif|svg)(\?.*)?$/;
4+
const IMG_REGEX = /\.(png|jpe?g|gif|svg)(\?.*)?$/;
5+
const PKG_PREFIX = '@easy-team';
56
exports.readWebpackMemoryFile = (compiler, filePath) => {
67
const compilerList = Array.isArray(compiler) ? compiler : [compiler];
78
for (let i = 0; i < compilerList.length; i++) {
@@ -11,7 +12,7 @@ exports.readWebpackMemoryFile = (compiler, filePath) => {
1112
});
1213
if (fileCompiler && fileCompiler.length) {
1314
const ext = path.extname(filePath).toLocaleLowerCase();
14-
if (imgRegex.test(ext)) {
15+
if (IMG_REGEX.test(ext)) {
1516
const base64 = fileCompiler[0].outputFileSystem.readFileSync(filePath).toString('base64');
1617
return `data:image/${ext.replace(/^\./, '')};base64,${base64}`;
1718
}
@@ -21,12 +22,26 @@ exports.readWebpackMemoryFile = (compiler, filePath) => {
2122
return '';
2223
};
2324

24-
exports.requireModule = (module, baseDir) => {
25+
exports.requireModule = (moduleName, baseDir) => {
2526
try {
26-
const modulepath = path.join(baseDir, 'node_modules', module);
27+
const modulepath = path.join(baseDir, 'node_modules', moduleName);
2728
return require(modulepath);
2829
} catch (e) {
29-
return require(module);
30+
return require(moduleName);
31+
}
32+
};
33+
34+
35+
exports.requireEasyModule = (moduleName, baseDir) => {
36+
const name = `${PKG_PREFIX}/${moduleName}`;
37+
return exports.requireModule(name, baseDir);
38+
};
39+
40+
exports.requireEasyCompatibleModule = (moduleName, baseDir) => {
41+
try {
42+
return exports.requireModule(moduleName, baseDir);
43+
} catch (e) {
44+
return exports.requireEasyModule(moduleName, baseDir);
3045
}
3146
};
3247

@@ -65,14 +80,19 @@ exports.isUseMultProcess = (baseDir, pluginConfig) => {
6580
};
6681

6782
exports.getFramework = (root, option = {}) => {
83+
const vuePkgName = 'easywebpack-vue';
84+
const reactPkgName = 'easywebpack-vue';
85+
6886
if (option.framework) {
6987
return option.framework;
7088
}
7189
const pkgFile = path.join(root, 'package.json');
7290
const pkg = require(pkgFile);
73-
if (pkg.dependencies['egg-view-vue-ssr'] || pkg.dependencies['easywebpack-vue'] || pkg.devDependencies['easywebpack-vue']) {
91+
if (pkg.dependencies['egg-view-vue-ssr'] || pkg.dependencies[vuePkgName] || pkg.devDependencies[vuePkgName]
92+
|| pkg.dependencies[`${PKG_PREFIX}/${vuePkgName}`] || pkg.devDependencies[`${PKG_PREFIX}/${vuePkgName}`]) {
7493
return 'vue';
75-
} else if (pkg.dependencies['egg-view-react-ssr'] || pkg.dependencies['easywebpack-react'] || pkg.devDependencies['easywebpack-react']) {
94+
} else if (pkg.dependencies['egg-view-react-ssr'] || pkg.dependencies[reactPkgName] || pkg.devDependencies[reactPkgName]
95+
|| pkg.dependencies[`${PKG_PREFIX}/${reactPkgName}`] || pkg.devDependencies[`${PKG_PREFIX}/${reactPkgName}`]) {
7696
return 'react';
7797
}
7898
return null;
@@ -84,7 +104,7 @@ exports.getWebpackConfig = (eggWebpackConfig, option) => {
84104
option.framework = framework;
85105
const module = framework ? `easywebpack-${framework}` : 'easywebpack';
86106
const webpackConfigFile = eggWebpackConfig.webpackConfigFile;
87-
const easywebpack = exports.requireModule(module, baseDir);
107+
const easywebpack = exports.requireEasyCompatibleModule(module, baseDir);
88108
return easywebpack.getWebpackConfig(webpackConfigFile, option);
89109
};
90110

@@ -112,4 +132,4 @@ exports.normalizeProxyUrlFile = (app, url) => {
112132

113133
exports.getPort = port => {
114134
return Number(process.env.EASY_ENV_DEV_PORT || port);
115-
};
135+
};

0 commit comments

Comments
 (0)