|
1 | 1 | 'use strict'; |
2 | 2 |
|
3 | | -[ |
| 3 | +const internal = [ |
4 | 4 | 'moduleAlias', |
5 | 5 | 'getPadLength', |
6 | 6 | 'injectHtml', |
7 | 7 | 'loadFile', |
8 | 8 | 'logger', |
9 | 9 | 'smartMerge', |
10 | 10 | 'virtualFile', |
11 | | -].forEach(m => { |
12 | | - Object.assign(exports, { |
13 | | - [m]: require(`./libs/${m}`), |
| 11 | +].reduce((obj, key) => { |
| 12 | + obj[key] = require(`./src/${key}`); |
| 13 | + return obj; |
| 14 | +}, {}); |
| 15 | + |
| 16 | +internal.assert = internal.logger.assert.bind(internal.logger); |
| 17 | + |
| 18 | +const thirdParty = { |
| 19 | + fs: 'fs-extra', |
| 20 | + chalk: 'chalk', |
| 21 | + cheerio: 'cheerio', |
| 22 | + semver: 'semver', |
| 23 | + semverRegex: 'semver-regex', |
| 24 | + _: 'lodash', |
| 25 | + tryRequire: 'try-require', |
| 26 | + ora: 'ora', |
| 27 | + dedent: 'dedent', |
| 28 | + globby: 'globby', |
| 29 | + globParent: 'glob-parent', |
| 30 | + isGlob: 'is-glob', |
| 31 | + npa: 'npm-package-arg', |
| 32 | + parseGitUrl: 'git-url-parse', |
| 33 | +}; |
| 34 | + |
| 35 | +Object.keys(thirdParty).forEach(key => { |
| 36 | + // lazy |
| 37 | + Object.defineProperty(internal, key, { |
| 38 | + get() { |
| 39 | + return require(thirdParty[key]); |
| 40 | + }, |
14 | 41 | }); |
15 | 42 | }); |
16 | 43 |
|
17 | | -exports.assert = require('assert'); |
18 | | -exports.fs = require('fs-extra'); |
19 | | -exports.chalk = require('chalk'); |
20 | | -exports.cheerio = require('cheerio'); |
21 | | -exports.semver = require('semver'); |
22 | | -exports.semverRegex = require('semver-regex'); |
23 | | -exports._ = require('lodash'); |
24 | | -exports.tryRequire = require('try-require'); |
25 | | -exports.ora = require('ora'); |
| 44 | +module.exports = internal; |
0 commit comments