@modern-js/utils 1.0.0 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -4
  3. package/dist/js/modern/FileSizeReporter.js +2 -2
  4. package/dist/js/modern/alias.js +1 -1
  5. package/dist/js/modern/applyOptionsChain.js +2 -1
  6. package/dist/js/modern/constants.js +25 -0
  7. package/dist/js/modern/ensureAbsolutePath.js +1 -1
  8. package/dist/js/modern/getEntryOptions.js +13 -4
  9. package/dist/js/modern/getPackageManager.js +1 -1
  10. package/dist/js/modern/index.js +1 -5
  11. package/dist/js/modern/is/index.js +1 -1
  12. package/dist/js/modern/is/type.js +3 -0
  13. package/dist/js/modern/monorepo.js +1 -1
  14. package/dist/js/modern/path.js +2 -13
  15. package/dist/js/modern/prettyInstructions.js +2 -2
  16. package/dist/js/modern/readTsConfig.js +1 -1
  17. package/dist/js/modern/runtimeExports.js +6 -2
  18. package/dist/js/node/FileSizeReporter.js +13 -17
  19. package/dist/js/node/alias.js +3 -7
  20. package/dist/js/node/applyOptionsChain.js +6 -5
  21. package/dist/js/node/constants.js +28 -2
  22. package/dist/js/node/ensureAbsolutePath.js +3 -5
  23. package/dist/js/node/getEntryOptions.js +14 -4
  24. package/dist/js/node/getPackageManager.js +6 -10
  25. package/dist/js/node/index.js +13 -17
  26. package/dist/js/node/is/index.js +3 -7
  27. package/dist/js/node/is/type.js +5 -0
  28. package/dist/js/node/monorepo.js +13 -17
  29. package/dist/js/node/path.js +5 -37
  30. package/dist/js/node/prettyInstructions.js +5 -3
  31. package/dist/js/node/readTsConfig.js +4 -6
  32. package/dist/js/node/runtimeExports.js +9 -7
  33. package/dist/js/treeshaking/FileSizeReporter.js +2 -2
  34. package/dist/js/treeshaking/alias.js +1 -1
  35. package/dist/js/treeshaking/applyOptionsChain.js +2 -1
  36. package/dist/js/treeshaking/constants.js +25 -0
  37. package/dist/js/treeshaking/ensureAbsolutePath.js +1 -1
  38. package/dist/js/treeshaking/getEntryOptions.js +14 -3
  39. package/dist/js/treeshaking/getPackageManager.js +1 -1
  40. package/dist/js/treeshaking/index.js +1 -5
  41. package/dist/js/treeshaking/is/index.js +1 -1
  42. package/dist/js/treeshaking/is/type.js +3 -0
  43. package/dist/js/treeshaking/monorepo.js +1 -1
  44. package/dist/js/treeshaking/path.js +4 -26
  45. package/dist/js/treeshaking/prettyInstructions.js +2 -2
  46. package/dist/js/treeshaking/readTsConfig.js +1 -1
  47. package/dist/js/treeshaking/runtimeExports.js +8 -2
  48. package/dist/types/constants.d.ts +5 -0
  49. package/dist/types/getEntryOptions.d.ts +1 -1
  50. package/dist/types/index.d.ts +1 -3
  51. package/dist/types/is/type.d.ts +2 -1
  52. package/dist/types/monorepo.d.ts +1 -1
  53. package/dist/types/path.d.ts +2 -11
  54. package/dist/types/prettyInstructions.d.ts +6 -1
  55. package/dist/types/runtimeExports.d.ts +1 -1
  56. package/package.json +3 -3
  57. package/src/FileSizeReporter.ts +2 -2
  58. package/src/alias.ts +1 -1
  59. package/src/applyOptionsChain.ts +2 -1
  60. package/src/constants.ts +20 -1
  61. package/src/ensureAbsolutePath.ts +1 -1
  62. package/src/getEntryOptions.ts +23 -4
  63. package/src/getPackageManager.ts +1 -1
  64. package/src/index.ts +1 -3
  65. package/src/is/index.ts +1 -1
  66. package/src/is/type.ts +4 -0
  67. package/src/monorepo.ts +1 -1
  68. package/src/path.ts +3 -21
  69. package/src/prettyInstructions.ts +2 -2
  70. package/src/readTsConfig.ts +1 -1
  71. package/src/runtimeExports.ts +32 -31
  72. package/tests/.eslintrc.js +6 -0
  73. package/tests/compatRequire.test.ts +1 -1
  74. package/tests/ensureAbsolutePath.test.ts +7 -4
  75. package/tests/findExists.test.ts +1 -1
  76. package/tests/getBrowserslist.test.ts +1 -1
  77. package/tests/getEntryOptions.test.ts +11 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @modern-js/utils
2
2
 
3
+ ## 1.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 0fa83663: support more .env files
8
+ - f594fbc8: fix apple icon and favicon support
9
+
10
+ ## 1.1.1
11
+
12
+ ### Patch Changes
13
+
14
+ - c0fc0700: feat: support deploy plugin
15
+
16
+ ## 1.1.0
17
+
18
+ ### Minor Changes
19
+
20
+ - 96119db2: Relese v1.1.0
21
+
3
22
  ## 1.0.0
4
23
 
5
24
  ### Patch Changes
package/README.md CHANGED
@@ -17,10 +17,7 @@
17
17
 
18
18
  > The doc site ([modernjs.dev](https://modernjs.dev)) and articles are only available in Chinese for now, we are planning to add English versions soon.
19
19
 
20
- - 介绍 Modern.js (即将上线)
21
- - [迈入现代 Web 开发](https://zhuanlan.zhihu.com/p/386607009)
22
- - [现代 Web 开发者问卷调查报告](https://zhuanlan.zhihu.com/p/403206195)
23
- - [字节跳动是如何落地微前端的](https://mp.weixin.qq.com/s/L9wbfNG5fTXF5bx7dcgj4Q)
20
+ - [Modern.js: Hello, World!](https://zhuanlan.zhihu.com/p/426707646)
24
21
 
25
22
  ## Getting Started
26
23
 
@@ -13,13 +13,13 @@
13
13
  'use strict';
14
14
 
15
15
  import fs from 'fs';
16
- import * as path from "./path";
16
+ import path from 'path';
17
17
  import chalk from 'chalk';
18
18
  import filesize from 'filesize';
19
19
  import recursive from 'recursive-readdir';
20
20
  import stripAnsi from 'strip-ansi';
21
21
  import gzipSize from 'gzip-size';
22
- import { logger } from '.';
22
+ import { logger } from "./logger";
23
23
 
24
24
  function canReadAsset(asset) {
25
25
  return /\.(js|css)$/.test(asset) && !/service-worker\.js/.test(asset) && !/precache-manifest\.[0-9a-f]+\.js/.test(asset);
@@ -5,8 +5,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
7
7
  import fs from 'fs';
8
+ import path from 'path';
8
9
  import chalk from 'chalk';
9
- import * as path from "./path";
10
10
  import { readTsConfigByFile } from "./readTsConfig";
11
11
  import { applyOptionsChain } from "./applyOptionsChain";
12
12
  export const validAlias = (modernConfig, {
@@ -1,4 +1,5 @@
1
- import { isFunction, logger, isPlainObject } from '.';
1
+ // eslint-disable-next-line import/no-useless-path-segments
2
+ import { isFunction, logger, isPlainObject } from "./index";
2
3
  export const applyOptionsChain = (defaults, options, utils, mergeFn = Object.assign) => {
3
4
  if (!options) {
4
5
  return defaults;
@@ -17,6 +17,11 @@ export const HMR_SOCK_PATH = '/_modern_js_hmr_ws';
17
17
  */
18
18
 
19
19
  export const ROUTE_SPEC_FILE = 'route.json';
20
+ /**
21
+ * main entry name
22
+ */
23
+
24
+ export const MAIN_ENTRY_NAME = 'main';
20
25
  /**
21
26
  * open editor request path
22
27
  */
@@ -121,6 +126,24 @@ export const INTERNAL_PLUGINS = {
121
126
  },
122
127
  '@modern-js/plugin-tailwindcss': {
123
128
  cli: '@modern-js/plugin-tailwindcss/cli'
129
+ },
130
+ '@modern-js/plugin-lambda-fc': {
131
+ cli: '@modern-js/plugin-lambda-fc/cli'
132
+ },
133
+ '@modern-js/plugin-lambda-scf': {
134
+ cli: '@modern-js/plugin-lambda-scf/cli'
135
+ },
136
+ '@modern-js/plugin-cdn-oss': {
137
+ cli: '@modern-js/plugin-cdn-oss/cli'
138
+ },
139
+ '@modern-js/plugin-cdn-cos': {
140
+ cli: '@modern-js/plugin-cdn-cos/cli'
141
+ },
142
+ '@modern-js/plugin-static-hosting': {
143
+ cli: '@modern-js/plugin-static-hosting/cli'
144
+ },
145
+ '@modern-js/plugin-polyfill': {
146
+ server: '@modern-js/plugin-polyfill'
124
147
  }
125
148
  };
126
149
  /**
@@ -217,6 +240,8 @@ export const PLUGIN_SCHEMAS = {
217
240
  schema: {
218
241
  oneOf: [{
219
242
  type: 'boolean'
243
+ }, {
244
+ type: 'object'
220
245
  }, {
221
246
  instanceof: 'Function'
222
247
  }]
@@ -1,4 +1,4 @@
1
- import * as path from "./path";
1
+ import path from 'path';
2
2
  /**
3
3
  * ensure absolute file path.
4
4
  * @param base - Base path to resolve relative from.
@@ -5,11 +5,20 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
7
7
  import { isPlainObject } from "./is";
8
- export const getEntryOptions = (name, baseOptions, optionsByEntries) => {
8
+ import { MAIN_ENTRY_NAME } from "./constants";
9
+ export const getEntryOptions = (name, baseOptions, optionsByEntries, packageName) => {
9
10
  if (optionsByEntries) {
10
- // eslint-disable-next-line no-nested-ternary
11
- return optionsByEntries.hasOwnProperty(name) ? isPlainObject(optionsByEntries[name]) && isPlainObject(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntries[name]) : optionsByEntries[name] : baseOptions;
11
+ let optionsByEntry = getOptionsByEntryName(name, optionsByEntries); // compatible with main entry using packageName as the key
12
+
13
+ if (optionsByEntry === undefined && name === MAIN_ENTRY_NAME && packageName) {
14
+ optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
15
+ } // eslint-disable-next-line no-nested-ternary
16
+
17
+
18
+ return optionsByEntry !== undefined ? isPlainObject(optionsByEntry) && isPlainObject(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntry) : optionsByEntry : baseOptions;
12
19
  } else {
13
20
  return baseOptions;
14
21
  }
15
- };
22
+ };
23
+
24
+ const getOptionsByEntryName = (name, optionsByEntries) => optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : undefined;
@@ -1,6 +1,6 @@
1
1
  import os from 'os';
2
+ import path from 'path';
2
3
  import fs from 'fs-extra';
3
- import * as path from "./path";
4
4
  export function getPackageManager(cwd = process.cwd()) {
5
5
  let appDirectory = cwd;
6
6
 
@@ -1,7 +1,5 @@
1
1
  import * as _fs from 'fs-extra';
2
2
  export { _fs as fs };
3
- import * as _upath from 'upath';
4
- export { _upath as upath };
5
3
  export * from "./chalk";
6
4
  export * from "./formatWebpackMessages";
7
5
  export * from "./FileSizeReporter";
@@ -25,9 +23,7 @@ export * from "./monorepo";
25
23
  export * from "./getPackageManager";
26
24
  export * from "./runtimeExports";
27
25
  export * from "./readTsConfig";
28
- export { isRelativePath } from "./path";
29
- import * as _path from "./path";
30
- export { _path as path };
26
+ export * from "./path";
31
27
  export * from "./generateMetaTags";
32
28
  export * from "./prettyInstructions";
33
29
  export * from "./alias";
@@ -1,5 +1,5 @@
1
1
  import fs from 'fs';
2
- import * as path from "../path";
2
+ import path from 'path';
3
3
  import { isDev } from "./node-env";
4
4
  /**
5
5
  * Check if the package name is in dependencies or devDependencies.
@@ -22,4 +22,7 @@ export function isPromise(obj) {
22
22
  /* eslint-disable promise/prefer-await-to-then */
23
23
  return Boolean(obj) && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
24
24
  /* eslint-enable promise/prefer-await-to-then */
25
+ }
26
+ export function isRegExp(obj) {
27
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
25
28
  }
@@ -5,9 +5,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
5
5
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
6
 
7
7
  import fs from 'fs';
8
+ import path from 'path';
8
9
  import glob from 'glob';
9
10
  import yaml from 'yaml';
10
- import * as path from "./path";
11
11
  const PACKAGE_MAX_DEPTH = 5;
12
12
  const WOKRSPACES_FILES = {
13
13
  YARN: 'package.json',
@@ -1,16 +1,5 @@
1
1
  import path from 'path';
2
2
  import upath from 'upath';
3
3
  export const isRelativePath = test => /^\.\.?($|[\\/])/.test(test);
4
- export const join = (...paths) => upath.normalizeSafe(path.join(...paths));
5
- export const resolve = (...paths) => upath.normalizeSafe(path.resolve(...paths));
6
- export const relative = (from, to) => upath.normalizeSafe(path.relative(from, to));
7
- export const basename = (p, ext) => upath.normalizeSafe(path.basename(p, ext));
8
- export const dirname = p => upath.normalizeSafe(path.dirname(p));
9
- export const extname = p => path.extname(p);
10
- export const isAbsolute = p => path.isAbsolute(p);
11
- export const normalize = p => upath.normalizeSafe(path.normalize(p));
12
- export const {
13
- sep,
14
- win32,
15
- posix
16
- } = path;
4
+ export const normalizeOutputPath = s => s.replace(/\\/g, '\\\\');
5
+ export const normalizeToPosixPath = p => upath.normalizeSafe(path.normalize(p));
@@ -3,7 +3,7 @@ import chalk from 'chalk';
3
3
  import { isDev } from "./is"; // TODO: type
4
4
 
5
5
  // TODO: remove hard code 'main'
6
- const isSPA = entrypoints => entrypoints.length === 1 && entrypoints[0].entryName === 'main';
6
+ export const isSingleEntry = entrypoints => entrypoints.length === 1 && entrypoints[0].entryName === 'main';
7
7
 
8
8
  const normalizeUrl = url => url.replace(/([^:]\/)\/+/g, '$1');
9
9
 
@@ -44,7 +44,7 @@ export const prettyInstructions = (appContext, config) => {
44
44
  const routes = serverRoutes.filter(route => route.entryName);
45
45
  let message = 'App running at:\n\n';
46
46
 
47
- if (isSPA(entrypoints)) {
47
+ if (isSingleEntry(entrypoints)) {
48
48
  message += urls.map(({
49
49
  type,
50
50
  url
@@ -1,4 +1,4 @@
1
- import * as path from "./path";
1
+ import path from 'path';
2
2
  export const readTsConfig = root => {
3
3
  // import typescript from 'typescript' cause eslint fromat error.
4
4
  const typescript = require('typescript');
@@ -1,5 +1,6 @@
1
+ import path from 'path';
1
2
  import fs from 'fs-extra';
2
- import * as path from "./path";
3
+ import { normalizeOutputPath } from "./path";
3
4
 
4
5
  const memo = fn => {
5
6
  const cache = new Map();
@@ -17,7 +18,7 @@ const memo = fn => {
17
18
  };
18
19
  };
19
20
 
20
- export const createRuntimeExportsUtils = memo((pwd, namespace) => {
21
+ export const createRuntimeExportsUtils = memo((pwd = '', namespace) => {
21
22
  const entryExportFile = path.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`); // const ensure = () => {
22
23
  // if (!fs.existsSync(entryExportFile)) {
23
24
  // fs.outputFileSync(entryExportFile, '');
@@ -26,6 +27,9 @@ export const createRuntimeExportsUtils = memo((pwd, namespace) => {
26
27
  // };
27
28
 
28
29
  const addExport = statement => {
30
+ // eslint-disable-next-line no-param-reassign
31
+ statement = normalizeOutputPath(statement);
32
+
29
33
  try {
30
34
  fs.ensureFileSync(entryExportFile);
31
35
 
@@ -20,7 +20,7 @@ exports.printFileSizesAfterBuild = printFileSizesAfterBuild;
20
20
 
21
21
  var _fs = _interopRequireDefault(require("fs"));
22
22
 
23
- var path = _interopRequireWildcard(require("./path"));
23
+ var _path = _interopRequireDefault(require("path"));
24
24
 
25
25
  var _chalk = _interopRequireDefault(require("chalk"));
26
26
 
@@ -32,11 +32,7 @@ var _stripAnsi = _interopRequireDefault(require("strip-ansi"));
32
32
 
33
33
  var _gzipSize = _interopRequireDefault(require("gzip-size"));
34
34
 
35
- var _ = require(".");
36
-
37
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
38
-
39
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
+ var _logger = require("./logger");
40
36
 
41
37
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
42
38
 
@@ -52,7 +48,7 @@ function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, ma
52
48
  all: false,
53
49
  assets: true
54
50
  }).assets.filter(asset => canReadAsset(asset.name)).map(asset => {
55
- var fileContents = _fs.default.readFileSync(path.join(root, asset.name));
51
+ var fileContents = _fs.default.readFileSync(_path.default.join(root, asset.name));
56
52
 
57
53
  var size = fileContents.length;
58
54
 
@@ -62,8 +58,8 @@ function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, ma
62
58
  var sizeDifference = getDifferenceLabel(size, previousSize);
63
59
  var gzipSizeDifference = getDifferenceLabel(gzippedSize, previousGzipSize);
64
60
  return {
65
- folder: path.join(path.basename(buildFolder), path.dirname(asset.name)),
66
- name: path.basename(asset.name),
61
+ folder: _path.default.join(_path.default.basename(buildFolder), _path.default.dirname(asset.name)),
62
+ name: _path.default.basename(asset.name),
67
63
  gzippedSize: gzippedSize,
68
64
  sizeLabel: (0, _filesize.default)(size) + (sizeDifference ? ' (' + sizeDifference + ')' : ''),
69
65
  gzipSizeLabel: (0, _filesize.default)(gzippedSize) + (gzipSizeDifference ? ' (' + gzipSizeDifference + ')' : '')
@@ -71,7 +67,7 @@ function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, ma
71
67
  })).reduce((single, all) => all.concat(single), []);
72
68
  assets.sort((a, b) => b.size - a.size);
73
69
  var longestSizeLabelLength = Math.max.apply(null, assets.map(a => (0, _stripAnsi.default)(a.sizeLabel).length));
74
- var longestFileNameLength = Math.max.apply(null, assets.map(a => (0, _stripAnsi.default)(a.folder + path.sep + a.name).length));
70
+ var longestFileNameLength = Math.max.apply(null, assets.map(a => (0, _stripAnsi.default)(a.folder + _path.default.sep + a.name).length));
75
71
  printFileSizesHeader(longestFileNameLength, longestSizeLabelLength);
76
72
  var suggestBundleSplitting = false;
77
73
  assets.forEach(asset => {
@@ -82,7 +78,7 @@ function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, ma
82
78
  gzipSizeLabel,
83
79
  gzippedSize
84
80
  } = asset;
85
- var fileNameLength = (0, _stripAnsi.default)(folder + path.sep + name).length;
81
+ var fileNameLength = (0, _stripAnsi.default)(folder + _path.default.sep + name).length;
86
82
  var sizeLength = (0, _stripAnsi.default)(sizeLabel).length;
87
83
 
88
84
  if (sizeLength < longestSizeLabelLength) {
@@ -90,7 +86,7 @@ function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, ma
90
86
  sizeLabel += rightPadding;
91
87
  }
92
88
 
93
- var fileNameLabel = _chalk.default.dim(asset.folder + path.sep) + _chalk.default.cyan(asset.name);
89
+ var fileNameLabel = _chalk.default.dim(asset.folder + _path.default.sep) + _chalk.default.cyan(asset.name);
94
90
 
95
91
  if (fileNameLength < longestFileNameLength) {
96
92
  var rightPadding = ' '.repeat(longestFileNameLength - fileNameLength);
@@ -101,17 +97,17 @@ function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, ma
101
97
  var maxRecommendedSize = isMainBundle ? maxBundleGzipSize : maxChunkGzipSize;
102
98
  var isLarge = maxRecommendedSize && gzippedSize > maxRecommendedSize;
103
99
 
104
- if (isLarge && path.extname(asset.name) === '.js') {
100
+ if (isLarge && _path.default.extname(asset.name) === '.js') {
105
101
  suggestBundleSplitting = true;
106
102
  }
107
103
 
108
- _.logger.log(' ' + fileNameLabel + ' ' + sizeLabel + ' ' + (isLarge ? _chalk.default.yellow(gzipSizeLabel) : gzipSizeLabel));
104
+ _logger.logger.log(' ' + fileNameLabel + ' ' + sizeLabel + ' ' + (isLarge ? _chalk.default.yellow(gzipSizeLabel) : gzipSizeLabel));
109
105
  });
110
106
 
111
107
  if (suggestBundleSplitting) {
112
- _.logger.log();
108
+ _logger.logger.log();
113
109
 
114
- _.logger.warn('The bundle size is significantly larger than recommended.');
110
+ _logger.logger.warn('The bundle size is significantly larger than recommended.');
115
111
  }
116
112
  }
117
113
 
@@ -128,7 +124,7 @@ function printFileSizesHeader(longestFileNameLength, longestSizeLabelLength) {
128
124
  return prev + curLabel + ' ';
129
125
  }, ' ');
130
126
 
131
- _.logger.log(_chalk.default.bold(_chalk.default.blue(headerRow)));
127
+ _logger.logger.log(_chalk.default.bold(_chalk.default.blue(headerRow)));
132
128
  }
133
129
 
134
130
  function removeFileNameHash(buildFolder, fileName) {
@@ -7,18 +7,14 @@ exports.validAlias = exports.getUserAlias = exports.getAlias = void 0;
7
7
 
8
8
  var _fs = _interopRequireDefault(require("fs"));
9
9
 
10
- var _chalk = _interopRequireDefault(require("chalk"));
10
+ var _path = _interopRequireDefault(require("path"));
11
11
 
12
- var path = _interopRequireWildcard(require("./path"));
12
+ var _chalk = _interopRequireDefault(require("chalk"));
13
13
 
14
14
  var _readTsConfig = require("./readTsConfig");
15
15
 
16
16
  var _applyOptionsChain = require("./applyOptionsChain");
17
17
 
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
-
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
-
22
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
19
 
24
20
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
@@ -77,7 +73,7 @@ const getAlias = (aliasOption, option) => {
77
73
  const tsconfig = (0, _readTsConfig.readTsConfigByFile)(option.tsconfigPath);
78
74
  const baseUrl = tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$compilerOpt = tsconfig.compilerOptions) === null || _tsconfig$compilerOpt === void 0 ? void 0 : _tsconfig$compilerOpt.baseUrl;
79
75
  aliasConfig = {
80
- absoluteBaseUrl: baseUrl ? path.join(option.appDirectory, baseUrl) : option.appDirectory,
76
+ absoluteBaseUrl: baseUrl ? _path.default.join(option.appDirectory, baseUrl) : option.appDirectory,
81
77
  paths: _objectSpread(_objectSpread({}, aliasOption || {}), tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$compilerOpt2 = tsconfig.compilerOptions) === null || _tsconfig$compilerOpt2 === void 0 ? void 0 : _tsconfig$compilerOpt2.paths),
82
78
  isTsPath: true,
83
79
  isTsProject
@@ -5,21 +5,22 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.applyOptionsChain = void 0;
7
7
 
8
- var _ = require(".");
8
+ var _index = require("./index");
9
9
 
10
+ // eslint-disable-next-line import/no-useless-path-segments
10
11
  const applyOptionsChain = (defaults, options, utils, mergeFn = Object.assign) => {
11
12
  if (!options) {
12
13
  return defaults;
13
14
  }
14
15
 
15
- if ((0, _.isPlainObject)(options)) {
16
+ if ((0, _index.isPlainObject)(options)) {
16
17
  return mergeFn(defaults, options);
17
- } else if ((0, _.isFunction)(options)) {
18
+ } else if ((0, _index.isFunction)(options)) {
18
19
  const ret = options(defaults, utils);
19
20
 
20
21
  if (ret) {
21
- if (!(0, _.isPlainObject)(ret)) {
22
- _.logger.warn(`${options.name}: Function should mutate the config and return nothing, Or return a cloned or merged version of config object.`);
22
+ if (!(0, _index.isPlainObject)(ret)) {
23
+ _index.logger.warn(`${options.name}: Function should mutate the config and return nothing, Or return a cloned or merged version of config object.`);
23
24
  }
24
25
 
25
26
  return ret;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.SERVER_RENDER_FUNCTION_NAME = exports.SERVER_BUNDLE_DIRECTORY = exports.ROUTE_SPEC_FILE = exports.PLUGIN_SCHEMAS = exports.LOADABLE_STATS_FILE = exports.LAUNCH_EDITOR_ENDPOINT = exports.INTERNAL_SRC_ALIAS = exports.INTERNAL_PLUGINS = exports.INTERNAL_DIR_ALAIS = exports.HMR_SOCK_PATH = exports.HIDE_MODERN_JS_DIR = exports.ENTRY_NAME_PATTERN = void 0;
6
+ exports.SERVER_RENDER_FUNCTION_NAME = exports.SERVER_BUNDLE_DIRECTORY = exports.ROUTE_SPEC_FILE = exports.PLUGIN_SCHEMAS = exports.MAIN_ENTRY_NAME = exports.LOADABLE_STATS_FILE = exports.LAUNCH_EDITOR_ENDPOINT = exports.INTERNAL_SRC_ALIAS = exports.INTERNAL_PLUGINS = exports.INTERNAL_DIR_ALAIS = exports.HMR_SOCK_PATH = exports.HIDE_MODERN_JS_DIR = exports.ENTRY_NAME_PATTERN = void 0;
7
7
 
8
8
  /**
9
9
  * alias to src directory
@@ -28,10 +28,16 @@ const HMR_SOCK_PATH = '/_modern_js_hmr_ws';
28
28
  exports.HMR_SOCK_PATH = HMR_SOCK_PATH;
29
29
  const ROUTE_SPEC_FILE = 'route.json';
30
30
  /**
31
- * open editor request path
31
+ * main entry name
32
32
  */
33
33
 
34
34
  exports.ROUTE_SPEC_FILE = ROUTE_SPEC_FILE;
35
+ const MAIN_ENTRY_NAME = 'main';
36
+ /**
37
+ * open editor request path
38
+ */
39
+
40
+ exports.MAIN_ENTRY_NAME = MAIN_ENTRY_NAME;
35
41
  const LAUNCH_EDITOR_ENDPOINT = '/__open-stack-frame-in-editor';
36
42
  /**
37
43
  * server side bundles directory, which relative to dist.
@@ -138,6 +144,24 @@ const INTERNAL_PLUGINS = {
138
144
  },
139
145
  '@modern-js/plugin-tailwindcss': {
140
146
  cli: '@modern-js/plugin-tailwindcss/cli'
147
+ },
148
+ '@modern-js/plugin-lambda-fc': {
149
+ cli: '@modern-js/plugin-lambda-fc/cli'
150
+ },
151
+ '@modern-js/plugin-lambda-scf': {
152
+ cli: '@modern-js/plugin-lambda-scf/cli'
153
+ },
154
+ '@modern-js/plugin-cdn-oss': {
155
+ cli: '@modern-js/plugin-cdn-oss/cli'
156
+ },
157
+ '@modern-js/plugin-cdn-cos': {
158
+ cli: '@modern-js/plugin-cdn-cos/cli'
159
+ },
160
+ '@modern-js/plugin-static-hosting': {
161
+ cli: '@modern-js/plugin-static-hosting/cli'
162
+ },
163
+ '@modern-js/plugin-polyfill': {
164
+ server: '@modern-js/plugin-polyfill'
141
165
  }
142
166
  };
143
167
  /**
@@ -235,6 +259,8 @@ const PLUGIN_SCHEMAS = {
235
259
  schema: {
236
260
  oneOf: [{
237
261
  type: 'boolean'
262
+ }, {
263
+ type: 'object'
238
264
  }, {
239
265
  instanceof: 'Function'
240
266
  }]
@@ -5,11 +5,9 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.ensureAbsolutePath = void 0;
7
7
 
8
- var path = _interopRequireWildcard(require("./path"));
8
+ var _path = _interopRequireDefault(require("path"));
9
9
 
10
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
11
-
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
11
 
14
12
  /**
15
13
  * ensure absolute file path.
@@ -17,6 +15,6 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
17
15
  * @param filePath - Aboluste or relative file path.
18
16
  * @returns Resolved absolute file path.
19
17
  */
20
- const ensureAbsolutePath = (base, filePath) => path.isAbsolute(filePath) ? filePath : path.resolve(base, filePath);
18
+ const ensureAbsolutePath = (base, filePath) => _path.default.isAbsolute(filePath) ? filePath : _path.default.resolve(base, filePath);
21
19
 
22
20
  exports.ensureAbsolutePath = ensureAbsolutePath;
@@ -7,19 +7,29 @@ exports.getEntryOptions = void 0;
7
7
 
8
8
  var _is = require("./is");
9
9
 
10
+ var _constants = require("./constants");
11
+
10
12
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
13
 
12
14
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
15
 
14
16
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
17
 
16
- const getEntryOptions = (name, baseOptions, optionsByEntries) => {
18
+ const getEntryOptions = (name, baseOptions, optionsByEntries, packageName) => {
17
19
  if (optionsByEntries) {
18
- // eslint-disable-next-line no-nested-ternary
19
- return optionsByEntries.hasOwnProperty(name) ? (0, _is.isPlainObject)(optionsByEntries[name]) && (0, _is.isPlainObject)(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntries[name]) : optionsByEntries[name] : baseOptions;
20
+ let optionsByEntry = getOptionsByEntryName(name, optionsByEntries); // compatible with main entry using packageName as the key
21
+
22
+ if (optionsByEntry === undefined && name === _constants.MAIN_ENTRY_NAME && packageName) {
23
+ optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
24
+ } // eslint-disable-next-line no-nested-ternary
25
+
26
+
27
+ return optionsByEntry !== undefined ? (0, _is.isPlainObject)(optionsByEntry) && (0, _is.isPlainObject)(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntry) : optionsByEntry : baseOptions;
20
28
  } else {
21
29
  return baseOptions;
22
30
  }
23
31
  };
24
32
 
25
- exports.getEntryOptions = getEntryOptions;
33
+ exports.getEntryOptions = getEntryOptions;
34
+
35
+ const getOptionsByEntryName = (name, optionsByEntries) => optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : undefined;
@@ -7,13 +7,9 @@ exports.getPackageManager = getPackageManager;
7
7
 
8
8
  var _os = _interopRequireDefault(require("os"));
9
9
 
10
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
11
-
12
- var path = _interopRequireWildcard(require("./path"));
10
+ var _path = _interopRequireDefault(require("path"));
13
11
 
14
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
15
-
16
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
12
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
17
13
 
18
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
15
 
@@ -21,19 +17,19 @@ function getPackageManager(cwd = process.cwd()) {
21
17
  let appDirectory = cwd;
22
18
 
23
19
  while (_os.default.homedir() !== appDirectory) {
24
- if (_fsExtra.default.existsSync(path.resolve(appDirectory, 'pnpm-lock.yaml'))) {
20
+ if (_fsExtra.default.existsSync(_path.default.resolve(appDirectory, 'pnpm-lock.yaml'))) {
25
21
  return 'pnpm';
26
22
  }
27
23
 
28
- if (_fsExtra.default.existsSync(path.resolve(appDirectory, 'yarn.lock'))) {
24
+ if (_fsExtra.default.existsSync(_path.default.resolve(appDirectory, 'yarn.lock'))) {
29
25
  return 'yarn';
30
26
  }
31
27
 
32
- if (_fsExtra.default.existsSync(path.resolve(appDirectory, 'package-lock.json'))) {
28
+ if (_fsExtra.default.existsSync(_path.default.resolve(appDirectory, 'package-lock.json'))) {
33
29
  return 'npm';
34
30
  }
35
31
 
36
- appDirectory = path.join(appDirectory, '..');
32
+ appDirectory = _path.default.join(appDirectory, '..');
37
33
  }
38
34
 
39
35
  return 'npm';