@modern-js/utils 1.3.7 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintrc.js +9 -0
- package/CHANGELOG.md +31 -0
- package/compiled/browserslist/index.d.ts +178 -0
- package/compiled/browserslist/index.js +1 -0
- package/compiled/browserslist/license +20 -0
- package/compiled/browserslist/package.json +1 -0
- package/compiled/chalk/index.d.ts +415 -0
- package/compiled/chalk/index.js +1 -0
- package/compiled/chalk/license +9 -0
- package/compiled/chalk/package.json +1 -0
- package/compiled/chokidar/anymatch/index.d.ts +19 -0
- package/compiled/chokidar/fsevents.node +0 -0
- package/compiled/chokidar/index.js +40 -0
- package/compiled/chokidar/license +21 -0
- package/compiled/chokidar/package.json +1 -0
- package/compiled/chokidar/types/index.d.ts +188 -0
- package/compiled/commander/index.js +1 -0
- package/compiled/commander/license +22 -0
- package/compiled/commander/package.json +1 -0
- package/compiled/commander/typings/index.d.ts +774 -0
- package/compiled/debug/index.d.ts +54 -0
- package/compiled/debug/index.js +1 -0
- package/compiled/debug/license +20 -0
- package/compiled/debug/ms/index.d.ts +25 -0
- package/compiled/debug/package.json +1 -0
- package/compiled/execa/index.d.ts +564 -0
- package/compiled/execa/index.js +1 -0
- package/compiled/execa/license +9 -0
- package/compiled/execa/package.json +1 -0
- package/compiled/filesize/filesize.d.ts +131 -0
- package/compiled/filesize/index.js +9 -0
- package/compiled/filesize/license +28 -0
- package/compiled/filesize/package.json +1 -0
- package/compiled/fs-extra/index.d.ts +563 -0
- package/compiled/fs-extra/index.js +1 -0
- package/compiled/fs-extra/license +15 -0
- package/compiled/fs-extra/package.json +1 -0
- package/compiled/glob/index.d.ts +91 -0
- package/compiled/glob/index.js +1 -0
- package/compiled/glob/license +21 -0
- package/compiled/glob/minimatch/index.d.ts +204 -0
- package/compiled/glob/package.json +1 -0
- package/compiled/gzip-size/index.d.ts +96 -0
- package/compiled/gzip-size/index.js +1 -0
- package/compiled/gzip-size/license +9 -0
- package/compiled/gzip-size/package.json +1 -0
- package/compiled/import-lazy/index.d.ts +26 -0
- package/compiled/import-lazy/index.js +1 -0
- package/compiled/import-lazy/license +9 -0
- package/compiled/import-lazy/package.json +1 -0
- package/compiled/js-yaml/index.d.ts +154 -0
- package/compiled/js-yaml/index.js +1 -0
- package/compiled/js-yaml/license +21 -0
- package/compiled/js-yaml/package.json +1 -0
- package/compiled/lodash/common/array.d.ts +2126 -0
- package/compiled/lodash/common/collection.d.ts +1930 -0
- package/compiled/lodash/common/common.d.ts +280 -0
- package/compiled/lodash/common/date.d.ts +23 -0
- package/compiled/lodash/common/function.d.ts +1446 -0
- package/compiled/lodash/common/lang.d.ts +1693 -0
- package/compiled/lodash/common/math.d.ts +405 -0
- package/compiled/lodash/common/number.d.ts +131 -0
- package/compiled/lodash/common/object.d.ts +2519 -0
- package/compiled/lodash/common/seq.d.ts +210 -0
- package/compiled/lodash/common/string.d.ts +788 -0
- package/compiled/lodash/common/util.d.ts +1220 -0
- package/compiled/lodash/index.d.ts +46 -0
- package/compiled/lodash/index.js +9 -0
- package/compiled/lodash/license +47 -0
- package/compiled/lodash/package.json +1 -0
- package/compiled/pkg-up/index.d.ts +48 -0
- package/compiled/pkg-up/index.js +1 -0
- package/compiled/pkg-up/license +9 -0
- package/compiled/pkg-up/package.json +1 -0
- package/compiled/recursive-readdir/index.d.ts +21 -0
- package/compiled/recursive-readdir/index.js +1 -0
- package/compiled/recursive-readdir/license +21 -0
- package/compiled/recursive-readdir/package.json +1 -0
- package/compiled/signale/index.d.ts +162 -0
- package/compiled/signale/index.js +1 -0
- package/compiled/signale/package.json +1 -0
- package/compiled/strip-ansi/index.d.ts +17 -0
- package/compiled/strip-ansi/index.js +1 -0
- package/compiled/strip-ansi/license +9 -0
- package/compiled/strip-ansi/package.json +1 -0
- package/compiled/upath/index.js +1 -0
- package/compiled/upath/license +22 -0
- package/compiled/upath/package.json +1 -0
- package/compiled/upath/upath.d.ts +241 -0
- package/dist/{types/FileSizeReporter.d.ts → FileSizeReporter.d.ts} +5 -5
- package/dist/FileSizeReporter.js +151 -0
- package/dist/{types/alias.d.ts → alias.d.ts} +12 -14
- package/dist/alias.js +62 -0
- package/dist/analyzeProject.d.ts +1 -0
- package/dist/analyzeProject.js +44 -0
- package/dist/applyOptionsChain.d.ts +6 -0
- package/dist/applyOptionsChain.js +30 -0
- package/dist/clearConsole.d.ts +1 -0
- package/dist/clearConsole.js +9 -0
- package/dist/{types/compatRequire.d.ts → compatRequire.d.ts} +1 -1
- package/dist/compatRequire.js +28 -0
- package/dist/compiled.d.ts +21 -0
- package/dist/compiled.js +33 -0
- package/dist/constants.d.ts +222 -0
- package/dist/constants.js +277 -0
- package/dist/{js/modern/debug.js → debug.d.ts} +1 -3
- package/dist/debug.js +11 -0
- package/dist/emptyDir.d.ts +1 -0
- package/dist/emptyDir.js +19 -0
- package/dist/{types/ensureAbsolutePath.d.ts → ensureAbsolutePath.d.ts} +1 -1
- package/dist/ensureAbsolutePath.js +15 -0
- package/dist/{types/findExists.d.ts → findExists.d.ts} +1 -1
- package/dist/findExists.js +21 -0
- package/dist/{types/format.d.ts → format.d.ts} +3 -3
- package/dist/format.js +113 -0
- package/dist/{types/generateMetaTags.d.ts → generateMetaTags.d.ts} +3 -3
- package/dist/generateMetaTags.js +48 -0
- package/dist/{types/getBrowserslist.d.ts → getBrowserslist.d.ts} +1 -1
- package/dist/getBrowserslist.js +7 -0
- package/dist/{types/getCacheIdentifier.d.ts → getCacheIdentifier.d.ts} +3 -3
- package/dist/getCacheIdentifier.js +24 -0
- package/dist/{types/getEntryOptions.d.ts → getEntryOptions.d.ts} +1 -1
- package/dist/getEntryOptions.js +26 -0
- package/dist/{types/getPackageManager.d.ts → getPackageManager.d.ts} +1 -1
- package/dist/getPackageManager.js +47 -0
- package/dist/{types/getPort.d.ts → getPort.d.ts} +1 -1
- package/dist/getPort.js +62 -0
- package/dist/getServerConfig.d.ts +1 -0
- package/dist/getServerConfig.js +39 -0
- package/dist/{types/import.d.ts → import.d.ts} +2 -2
- package/dist/import.js +10 -0
- package/dist/{types/index.d.ts → index.d.ts} +5 -4
- package/dist/index.js +46 -0
- package/dist/{types/is → is}/index.d.ts +1 -4
- package/dist/is/index.js +82 -0
- package/dist/{types/is → is}/node-env.d.ts +1 -1
- package/dist/is/node-env.js +12 -0
- package/dist/is/platform.d.ts +2 -0
- package/dist/is/platform.js +10 -0
- package/dist/{types/is → is}/type.d.ts +1 -1
- package/dist/is/type.js +38 -0
- package/dist/logger.d.ts +63 -0
- package/dist/logger.js +128 -0
- package/dist/{types/monorepo.d.ts → monorepo.d.ts} +3 -3
- package/dist/monorepo.js +80 -0
- package/dist/{types/nodeEnv.d.ts → nodeEnv.d.ts} +1 -1
- package/dist/nodeEnv.js +49 -0
- package/dist/{types/path.d.ts → path.d.ts} +1 -1
- package/dist/path.js +14 -0
- package/dist/{types/prettyInstructions.d.ts → prettyInstructions.d.ts} +2 -2
- package/dist/prettyInstructions.js +64 -0
- package/dist/{types/printBuildError.d.ts → printBuildError.d.ts} +1 -1
- package/dist/printBuildError.js +43 -0
- package/dist/{types/readTsConfig.d.ts → readTsConfig.d.ts} +1 -1
- package/dist/readTsConfig.js +19 -0
- package/dist/{types/removeSlash.d.ts → removeSlash.d.ts} +1 -1
- package/dist/removeSlash.js +9 -0
- package/dist/{types/runtimeExports.d.ts → runtimeExports.d.ts} +3 -3
- package/dist/runtimeExports.js +53 -0
- package/dist/ssrHelpers.d.ts +4 -0
- package/dist/ssrHelpers.js +7 -0
- package/dist/storage.d.ts +5 -0
- package/dist/storage.js +61 -0
- package/dist/{types/wait.d.ts → wait.d.ts} +1 -1
- package/dist/wait.js +7 -0
- package/dist/{types/watch.d.ts → watch.d.ts} +4 -4
- package/dist/watch.js +64 -0
- package/package.json +55 -37
- package/tsconfig.json +3 -5
- package/dist/js/modern/FileSizeReporter.js +0 -156
- package/dist/js/modern/alias.js +0 -74
- package/dist/js/modern/applyOptionsChain.js +0 -27
- package/dist/js/modern/chalk.js +0 -2
- package/dist/js/modern/clearConsole.js +0 -5
- package/dist/js/modern/compatRequire.js +0 -26
- package/dist/js/modern/constants.js +0 -333
- package/dist/js/modern/emptyDir.js +0 -6
- package/dist/js/modern/ensureAbsolutePath.js +0 -9
- package/dist/js/modern/findExists.js +0 -16
- package/dist/js/modern/format.js +0 -137
- package/dist/js/modern/generateMetaTags.js +0 -49
- package/dist/js/modern/getBrowserslist.js +0 -5
- package/dist/js/modern/getCacheIdentifier.js +0 -20
- package/dist/js/modern/getEntryOptions.js +0 -24
- package/dist/js/modern/getPackageManager.js +0 -37
- package/dist/js/modern/getPort.js +0 -52
- package/dist/js/modern/import.js +0 -11
- package/dist/js/modern/index.js +0 -34
- package/dist/js/modern/is/index.js +0 -77
- package/dist/js/modern/is/node-env.js +0 -5
- package/dist/js/modern/is/platform.js +0 -2
- package/dist/js/modern/is/type.js +0 -25
- package/dist/js/modern/logger.js +0 -152
- package/dist/js/modern/monorepo.js +0 -84
- package/dist/js/modern/nodeEnv.js +0 -31
- package/dist/js/modern/path.js +0 -5
- package/dist/js/modern/pkgUp.js +0 -2
- package/dist/js/modern/prettyInstructions.js +0 -79
- package/dist/js/modern/printBuildError.js +0 -40
- package/dist/js/modern/readTsConfig.js +0 -13
- package/dist/js/modern/removeSlash.js +0 -3
- package/dist/js/modern/runtimeExports.js +0 -52
- package/dist/js/modern/wait.js +0 -5
- package/dist/js/modern/watch.js +0 -43
- package/dist/js/node/FileSizeReporter.js +0 -175
- package/dist/js/node/alias.js +0 -97
- package/dist/js/node/applyOptionsChain.js +0 -37
- package/dist/js/node/chalk.js +0 -15
- package/dist/js/node/clearConsole.js +0 -14
- package/dist/js/node/compatRequire.js +0 -41
- package/dist/js/node/constants.js +0 -353
- package/dist/js/node/debug.js +0 -19
- package/dist/js/node/emptyDir.js +0 -18
- package/dist/js/node/ensureAbsolutePath.js +0 -20
- package/dist/js/node/findExists.js +0 -27
- package/dist/js/node/format.js +0 -141
- package/dist/js/node/generateMetaTags.js +0 -58
- package/dist/js/node/getBrowserslist.js +0 -17
- package/dist/js/node/getCacheIdentifier.js +0 -27
- package/dist/js/node/getEntryOptions.js +0 -35
- package/dist/js/node/getPackageManager.js +0 -51
- package/dist/js/node/getPort.js +0 -67
- package/dist/js/node/import.js +0 -19
- package/dist/js/node/index.js +0 -465
- package/dist/js/node/is/index.js +0 -150
- package/dist/js/node/is/node-env.js +0 -23
- package/dist/js/node/is/platform.js +0 -14
- package/dist/js/node/is/type.js +0 -46
- package/dist/js/node/logger.js +0 -162
- package/dist/js/node/monorepo.js +0 -118
- package/dist/js/node/nodeEnv.js +0 -45
- package/dist/js/node/path.js +0 -24
- package/dist/js/node/pkgUp.js +0 -15
- package/dist/js/node/prettyInstructions.js +0 -95
- package/dist/js/node/printBuildError.js +0 -52
- package/dist/js/node/readTsConfig.js +0 -28
- package/dist/js/node/removeSlash.js +0 -18
- package/dist/js/node/runtimeExports.js +0 -68
- package/dist/js/node/wait.js +0 -12
- package/dist/js/node/watch.js +0 -61
- package/dist/js/treeshaking/FileSizeReporter.js +0 -185
- package/dist/js/treeshaking/alias.js +0 -72
- package/dist/js/treeshaking/applyOptionsChain.js +0 -31
- package/dist/js/treeshaking/chalk.js +0 -2
- package/dist/js/treeshaking/clearConsole.js +0 -5
- package/dist/js/treeshaking/compatRequire.js +0 -29
- package/dist/js/treeshaking/constants.js +0 -333
- package/dist/js/treeshaking/debug.js +0 -10
- package/dist/js/treeshaking/emptyDir.js +0 -37
- package/dist/js/treeshaking/ensureAbsolutePath.js +0 -11
- package/dist/js/treeshaking/findExists.js +0 -33
- package/dist/js/treeshaking/format.js +0 -167
- package/dist/js/treeshaking/generateMetaTags.js +0 -55
- package/dist/js/treeshaking/getBrowserslist.js +0 -7
- package/dist/js/treeshaking/getCacheIdentifier.js +0 -35
- package/dist/js/treeshaking/getEntryOptions.js +0 -26
- package/dist/js/treeshaking/getPackageManager.js +0 -101
- package/dist/js/treeshaking/getPort.js +0 -103
- package/dist/js/treeshaking/import.js +0 -11
- package/dist/js/treeshaking/index.js +0 -34
- package/dist/js/treeshaking/is/index.js +0 -81
- package/dist/js/treeshaking/is/node-env.js +0 -13
- package/dist/js/treeshaking/is/platform.js +0 -6
- package/dist/js/treeshaking/is/type.js +0 -27
- package/dist/js/treeshaking/logger.js +0 -188
- package/dist/js/treeshaking/monorepo.js +0 -95
- package/dist/js/treeshaking/nodeEnv.js +0 -108
- package/dist/js/treeshaking/path.js +0 -11
- package/dist/js/treeshaking/pkgUp.js +0 -2
- package/dist/js/treeshaking/prettyInstructions.js +0 -100
- package/dist/js/treeshaking/printBuildError.js +0 -40
- package/dist/js/treeshaking/readTsConfig.js +0 -13
- package/dist/js/treeshaking/removeSlash.js +0 -9
- package/dist/js/treeshaking/runtimeExports.js +0 -61
- package/dist/js/treeshaking/wait.js +0 -8
- package/dist/js/treeshaking/watch.js +0 -112
- package/dist/types/applyOptionsChain.d.ts +0 -6
- package/dist/types/chalk.d.ts +0 -2
- package/dist/types/clearConsole.d.ts +0 -1
- package/dist/types/constants.d.ts +0 -219
- package/dist/types/debug.d.ts +0 -8
- package/dist/types/emptyDir.d.ts +0 -1
- package/dist/types/is/platform.d.ts +0 -2
- package/dist/types/logger.d.ts +0 -63
- package/dist/types/pkgUp.d.ts +0 -2
- package/tests/.eslintrc.js +0 -6
- package/tests/__snapshots__/prettyInstructions.test.ts.snap +0 -19
- package/tests/applyOptionsChain.test.ts +0 -100
- package/tests/compatRequire.test.ts +0 -32
- package/tests/debug.test.ts +0 -25
- package/tests/ensureAbsolutePath.test.ts +0 -16
- package/tests/findExists.test.ts +0 -22
- package/tests/fixtures/browserlist/develop/package.json +0 -11
- package/tests/fixtures/browserlist/dotfile/.browserslistrc +0 -3
- package/tests/fixtures/browserlist/pkg/package.json +0 -7
- package/tests/fixtures/compat-require/cjs.js +0 -1
- package/tests/fixtures/compat-require/empty.js +0 -1
- package/tests/fixtures/compat-require/esm.js +0 -5
- package/tests/fixtures/compat-require/foo.js +0 -3
- package/tests/fixtures/file-exists/a.ejs +0 -0
- package/tests/fixtures/file-exists/a.js/.gitkeep +0 -0
- package/tests/fixtures/file-exists/a.mjs +0 -0
- package/tests/fixtures/file-exists/a.ts +0 -0
- package/tests/format.test.ts +0 -60
- package/tests/generateMetaTags.test.ts +0 -19
- package/tests/getBrowserslist.test.ts +0 -32
- package/tests/getCacheIdentifier.test.ts +0 -37
- package/tests/getEntryOptions.test.ts +0 -53
- package/tests/index.test.ts +0 -18
- package/tests/is.test.ts +0 -27
- package/tests/isPlatform.test.ts +0 -19
- package/tests/isType.test.ts +0 -85
- package/tests/logger.test.ts +0 -53
- package/tests/prettyInstructions.test.ts +0 -139
- package/tests/removeSlash.test.ts +0 -19
- package/tests/tsconfig.json +0 -11
- package/tests/wait.ts +0 -38
package/package.json
CHANGED
@@ -11,71 +11,88 @@
|
|
11
11
|
"modern",
|
12
12
|
"modern.js"
|
13
13
|
],
|
14
|
-
"version": "1.
|
14
|
+
"version": "1.5.0",
|
15
15
|
"jsnext:source": "./src/index.ts",
|
16
|
-
"types": "./dist/
|
17
|
-
"main": "./dist/
|
18
|
-
"module": "./dist/
|
19
|
-
"jsnext:modern": "./dist/
|
16
|
+
"types": "./dist/index.d.ts",
|
17
|
+
"main": "./dist/index.js",
|
18
|
+
"module": "./dist/index.js",
|
19
|
+
"jsnext:modern": "./dist/index.js",
|
20
20
|
"exports": {
|
21
21
|
".": {
|
22
|
-
"
|
23
|
-
|
24
|
-
"import": "./dist/js/modern/index.js",
|
25
|
-
"require": "./dist/js/node/index.js"
|
26
|
-
},
|
27
|
-
"default": "./dist/js/treeshaking/index.js"
|
22
|
+
"jsnext:source": "./src/index.ts",
|
23
|
+
"default": "./dist/index.js"
|
28
24
|
},
|
29
25
|
"./format": {
|
30
26
|
"jsnext:source": "./src/format.ts",
|
31
|
-
"default": "./dist/
|
27
|
+
"default": "./dist/format.js"
|
32
28
|
},
|
33
29
|
"./constants": {
|
34
30
|
"jsnext:source": "./src/constants.ts",
|
35
|
-
"default": "./dist/
|
31
|
+
"default": "./dist/constants.js"
|
32
|
+
},
|
33
|
+
"./lodash": {
|
34
|
+
"jsnext:source": "./compiled/lodash/index.js",
|
35
|
+
"default": "./compiled/lodash/index.js"
|
36
|
+
},
|
37
|
+
"./strip-ansi": {
|
38
|
+
"jsnext:source": "./compiled/strip-ansi/index.js",
|
39
|
+
"default": "./compiled/strip-ansi/index.js"
|
36
40
|
}
|
37
41
|
},
|
38
42
|
"typesVersions": {
|
39
43
|
"*": {
|
40
44
|
"format": [
|
41
|
-
"./dist/
|
45
|
+
"./dist/format.d.ts"
|
42
46
|
],
|
43
47
|
"constants": [
|
44
|
-
"./dist/
|
48
|
+
"./dist/constants.d.ts"
|
49
|
+
],
|
50
|
+
"lodash": [
|
51
|
+
"./compiled/lodash/index.d.ts"
|
52
|
+
],
|
53
|
+
"strip-ansi": [
|
54
|
+
"./compiled/strip-ansi/index.d.ts"
|
45
55
|
]
|
46
56
|
}
|
47
57
|
},
|
48
58
|
"dependencies": {
|
49
59
|
"@babel/runtime": "^7",
|
50
|
-
"
|
51
|
-
"
|
52
|
-
"chalk": "^4.1.2",
|
53
|
-
"chokidar": "^3.5.2",
|
54
|
-
"debug": "^4.3.2",
|
55
|
-
"execa": "5",
|
56
|
-
"filesize": "^7.0.0",
|
57
|
-
"fs-extra": "^10.0.0",
|
58
|
-
"glob": "^7.1.7",
|
59
|
-
"gzip-size": "^6.0.0",
|
60
|
-
"import-lazy": "^4.0.0",
|
61
|
-
"pkg-up": "^3.1.0",
|
62
|
-
"recursive-readdir": "^2.2.2",
|
63
|
-
"strip-ansi": "6.0.0",
|
64
|
-
"typescript": "^4",
|
65
|
-
"upath": "^2.0.1",
|
66
|
-
"yaml": "^1.10.2"
|
60
|
+
"minimist": "^1.2.0",
|
61
|
+
"typescript": "^4"
|
67
62
|
},
|
68
63
|
"devDependencies": {
|
69
|
-
"@modern-js/types": "^1.
|
64
|
+
"@modern-js/types": "^1.5.0",
|
70
65
|
"@scripts/build": "0.0.0",
|
71
66
|
"@scripts/jest-config": "0.0.0",
|
72
|
-
"@types/debug": "
|
73
|
-
"@types/fs-extra": "
|
67
|
+
"@types/debug": "4.1.7",
|
68
|
+
"@types/fs-extra": "9.0.13",
|
74
69
|
"@types/glob": "^7.1.4",
|
75
70
|
"@types/jest": "^26",
|
71
|
+
"@types/js-yaml": "4.0.5",
|
72
|
+
"@types/lodash": "4.14.181",
|
73
|
+
"@types/minimist": "^1.2.2",
|
76
74
|
"@types/node": "^14",
|
77
|
-
"@types/recursive-readdir": "
|
75
|
+
"@types/recursive-readdir": "2.2.0",
|
76
|
+
"@types/signale": "1.4.4",
|
77
|
+
"browserslist": "4.20.2",
|
78
|
+
"chalk": "4.1.2",
|
79
|
+
"chokidar": "3.5.3",
|
80
|
+
"commander": "8.3.0",
|
81
|
+
"debug": "4.3.4",
|
82
|
+
"execa": "5.1.1",
|
83
|
+
"filesize": "8.0.7",
|
84
|
+
"fs-extra": "10.0.1",
|
85
|
+
"glob": "7.2.0",
|
86
|
+
"gzip-size": "6.0.0",
|
87
|
+
"import-lazy": "4.0.0",
|
78
88
|
"jest": "^27",
|
89
|
+
"js-yaml": "4.1.0",
|
90
|
+
"lodash": "4.17.21",
|
91
|
+
"pkg-up": "3.1.0",
|
92
|
+
"recursive-readdir": "2.2.2",
|
93
|
+
"signale": "1.4.0",
|
94
|
+
"strip-ansi": "6.0.1",
|
95
|
+
"upath": "2.0.1",
|
79
96
|
"webpack": "^5.71.0"
|
80
97
|
},
|
81
98
|
"sideEffects": false,
|
@@ -85,7 +102,8 @@
|
|
85
102
|
},
|
86
103
|
"scripts": {
|
87
104
|
"new": "modern new",
|
88
|
-
"
|
105
|
+
"dev": "tsc --watch",
|
106
|
+
"build": "tsc",
|
89
107
|
"test": "jest --passWithNoTests"
|
90
108
|
},
|
91
109
|
"readme": "\n<p align=\"center\">\n <a href=\"https://modernjs.dev\" target=\"blank\"><img src=\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png\" width=\"300\" alt=\"Modern.js Logo\" /></a>\n</p>\n<p align=\"center\">\n现代 Web 工程体系\n <br/>\n <a href=\"https://modernjs.dev\" target=\"blank\">\n modernjs.dev\n </a>\n</p>\n<p align=\"center\">\n The meta-framework suite designed from scratch for frontend-focused modern web development\n</p>\n\n# Introduction\n\n> 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.\n\n- [Modern.js: Hello, World!](https://zhuanlan.zhihu.com/p/426707646)\n\n## Getting Started\n\n- [Quick Start](https://modernjs.dev/docs/start)\n- [Guides](https://modernjs.dev/docs/guides)\n- [API References](https://modernjs.dev/docs/apis)\n\n## Contributing\n\n- [Contributing Guide](https://github.com/modern-js-dev/modern.js/blob/main/CONTRIBUTING.md)\n"
|
package/tsconfig.json
CHANGED
@@ -1,12 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"extends": "@modern-js/tsconfig/base",
|
3
3
|
"compilerOptions": {
|
4
|
-
"declaration":
|
5
|
-
"
|
6
|
-
"jsx": "preserve",
|
4
|
+
"declaration": true,
|
5
|
+
"outDir": "./dist",
|
7
6
|
"baseUrl": "./",
|
8
|
-
"isolatedModules": true
|
9
|
-
"paths": {}
|
7
|
+
"isolatedModules": true
|
10
8
|
},
|
11
9
|
"include": ["src"]
|
12
10
|
}
|
@@ -1,156 +0,0 @@
|
|
1
|
-
/* eslint-disable eslint-comments/no-unlimited-disable */
|
2
|
-
|
3
|
-
/* eslint-disable */
|
4
|
-
|
5
|
-
/**
|
6
|
-
* Copyright (c) 2015-present, Facebook, Inc.
|
7
|
-
*
|
8
|
-
* This source code is licensed under the MIT license found in the
|
9
|
-
* LICENSE file at
|
10
|
-
* https://github.com/facebook/create-react-app/blob/master/LICENSE
|
11
|
-
*/
|
12
|
-
// Modified by Chao Xu (xuchaobei)
|
13
|
-
'use strict';
|
14
|
-
|
15
|
-
import fs from 'fs';
|
16
|
-
import path from 'path';
|
17
|
-
import chalk from 'chalk';
|
18
|
-
import filesize from 'filesize';
|
19
|
-
import recursive from 'recursive-readdir';
|
20
|
-
import stripAnsi from 'strip-ansi';
|
21
|
-
import gzipSize from 'gzip-size';
|
22
|
-
import { logger } from "./logger";
|
23
|
-
|
24
|
-
function canReadAsset(asset) {
|
25
|
-
return /\.(js|css)$/.test(asset) && !/service-worker\.js/.test(asset) && !/precache-manifest\.[0-9a-f]+\.js/.test(asset);
|
26
|
-
} // Prints a detailed summary of build files.
|
27
|
-
|
28
|
-
|
29
|
-
function printFileSizesAfterBuild(webpackStats, previousSizeMap, buildFolder, maxBundleGzipSize, maxChunkGzipSize) {
|
30
|
-
var root = previousSizeMap.root;
|
31
|
-
var sizes = previousSizeMap.sizes;
|
32
|
-
var assets = (webpackStats.stats || [webpackStats]).map(stats => stats.toJson({
|
33
|
-
all: false,
|
34
|
-
assets: true
|
35
|
-
}).assets.filter(asset => canReadAsset(asset.name)).map(asset => {
|
36
|
-
var fileContents = fs.readFileSync(path.join(root, asset.name));
|
37
|
-
var size = fileContents.length;
|
38
|
-
var gzippedSize = gzipSize.sync(fileContents);
|
39
|
-
var [previousSize, previousGzipSize] = sizes[removeFileNameHash(root, asset.name)] || [];
|
40
|
-
var sizeDifference = getDifferenceLabel(size, previousSize);
|
41
|
-
var gzipSizeDifference = getDifferenceLabel(gzippedSize, previousGzipSize);
|
42
|
-
return {
|
43
|
-
folder: path.join(path.basename(buildFolder), path.dirname(asset.name)),
|
44
|
-
name: path.basename(asset.name),
|
45
|
-
gzippedSize: gzippedSize,
|
46
|
-
sizeLabel: filesize(size) + (sizeDifference ? ' (' + sizeDifference + ')' : ''),
|
47
|
-
gzipSizeLabel: filesize(gzippedSize) + (gzipSizeDifference ? ' (' + gzipSizeDifference + ')' : '')
|
48
|
-
};
|
49
|
-
})).reduce((single, all) => all.concat(single), []);
|
50
|
-
assets.sort((a, b) => b.size - a.size);
|
51
|
-
var longestSizeLabelLength = Math.max.apply(null, assets.map(a => stripAnsi(a.sizeLabel).length));
|
52
|
-
var longestFileNameLength = Math.max.apply(null, assets.map(a => stripAnsi(a.folder + path.sep + a.name).length));
|
53
|
-
printFileSizesHeader(longestFileNameLength, longestSizeLabelLength);
|
54
|
-
var suggestBundleSplitting = false;
|
55
|
-
assets.forEach(asset => {
|
56
|
-
var {
|
57
|
-
folder,
|
58
|
-
name,
|
59
|
-
sizeLabel,
|
60
|
-
gzipSizeLabel,
|
61
|
-
gzippedSize
|
62
|
-
} = asset;
|
63
|
-
var fileNameLength = stripAnsi(folder + path.sep + name).length;
|
64
|
-
var sizeLength = stripAnsi(sizeLabel).length;
|
65
|
-
|
66
|
-
if (sizeLength < longestSizeLabelLength) {
|
67
|
-
var rightPadding = ' '.repeat(longestSizeLabelLength - sizeLength);
|
68
|
-
sizeLabel += rightPadding;
|
69
|
-
}
|
70
|
-
|
71
|
-
var fileNameLabel = chalk.dim(asset.folder + path.sep) + chalk.cyan(asset.name);
|
72
|
-
|
73
|
-
if (fileNameLength < longestFileNameLength) {
|
74
|
-
var rightPadding = ' '.repeat(longestFileNameLength - fileNameLength);
|
75
|
-
fileNameLabel += rightPadding;
|
76
|
-
}
|
77
|
-
|
78
|
-
var isMainBundle = asset.name.indexOf('main.') === 0;
|
79
|
-
var maxRecommendedSize = isMainBundle ? maxBundleGzipSize : maxChunkGzipSize;
|
80
|
-
var isLarge = maxRecommendedSize && gzippedSize > maxRecommendedSize;
|
81
|
-
|
82
|
-
if (isLarge && path.extname(asset.name) === '.js') {
|
83
|
-
suggestBundleSplitting = true;
|
84
|
-
}
|
85
|
-
|
86
|
-
logger.log(' ' + fileNameLabel + ' ' + sizeLabel + ' ' + (isLarge ? chalk.yellow(gzipSizeLabel) : gzipSizeLabel));
|
87
|
-
});
|
88
|
-
|
89
|
-
if (suggestBundleSplitting) {
|
90
|
-
logger.log();
|
91
|
-
logger.warn('The bundle size is significantly larger than recommended.');
|
92
|
-
}
|
93
|
-
}
|
94
|
-
|
95
|
-
function printFileSizesHeader(longestFileNameLength, longestSizeLabelLength) {
|
96
|
-
const longestLengths = [longestFileNameLength, longestSizeLabelLength];
|
97
|
-
const headerRow = ['File', 'Size', 'Gzipped'].reduce((prev, cur, index) => {
|
98
|
-
const length = longestLengths[index];
|
99
|
-
let curLabel = cur;
|
100
|
-
|
101
|
-
if (length) {
|
102
|
-
curLabel = cur.length < length ? cur + ' '.repeat(length - cur.length) : cur;
|
103
|
-
}
|
104
|
-
|
105
|
-
return prev + curLabel + ' ';
|
106
|
-
}, ' ');
|
107
|
-
logger.log(chalk.bold(chalk.blue(headerRow)));
|
108
|
-
}
|
109
|
-
|
110
|
-
function removeFileNameHash(buildFolder, fileName) {
|
111
|
-
return fileName.replace(buildFolder, '').replace(/\\/g, '/').replace(/\/?(.*)(\.[0-9a-f]+)(\.chunk)?(\.js|\.css)/, (match, p1, p2, p3, p4) => p1 + p4);
|
112
|
-
} // Input: 1024, 2048
|
113
|
-
// Output: "(+1 KB)"
|
114
|
-
|
115
|
-
|
116
|
-
function getDifferenceLabel(currentSize, previousSize) {
|
117
|
-
var FIFTY_KILOBYTES = 1024 * 50;
|
118
|
-
var difference = currentSize - previousSize;
|
119
|
-
var fileSize = !Number.isNaN(difference) ? filesize(difference) : 0;
|
120
|
-
|
121
|
-
if (difference >= FIFTY_KILOBYTES) {
|
122
|
-
return chalk.red('+' + fileSize);
|
123
|
-
} else if (difference < FIFTY_KILOBYTES && difference > 0) {
|
124
|
-
return chalk.yellow('+' + fileSize);
|
125
|
-
} else if (difference < 0) {
|
126
|
-
return chalk.green(fileSize);
|
127
|
-
} else {
|
128
|
-
return '';
|
129
|
-
}
|
130
|
-
}
|
131
|
-
|
132
|
-
function measureFileSizesBeforeBuild(buildFolder) {
|
133
|
-
return new Promise(resolve => {
|
134
|
-
recursive(buildFolder, (err, fileNames) => {
|
135
|
-
var sizes;
|
136
|
-
|
137
|
-
if (!err && fileNames) {
|
138
|
-
sizes = fileNames.filter(canReadAsset).reduce((memo, fileName) => {
|
139
|
-
var contents = fs.readFileSync(fileName);
|
140
|
-
var key = removeFileNameHash(buildFolder, fileName); // save both the original size and gzip size
|
141
|
-
|
142
|
-
memo[key] = [contents.length, gzipSize.sync(contents)];
|
143
|
-
return memo;
|
144
|
-
}, {});
|
145
|
-
}
|
146
|
-
|
147
|
-
resolve({
|
148
|
-
root: buildFolder,
|
149
|
-
sizes: sizes || {}
|
150
|
-
});
|
151
|
-
});
|
152
|
-
});
|
153
|
-
}
|
154
|
-
|
155
|
-
export { measureFileSizesBeforeBuild, printFileSizesAfterBuild };
|
156
|
-
/* eslint-enable */
|
package/dist/js/modern/alias.js
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
2
|
-
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
4
|
-
|
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
|
-
|
7
|
-
import fs from 'fs';
|
8
|
-
import path from 'path';
|
9
|
-
import chalk from 'chalk';
|
10
|
-
import { readTsConfigByFile } from "./readTsConfig";
|
11
|
-
import { applyOptionsChain } from "./applyOptionsChain";
|
12
|
-
export const validAlias = (modernConfig, {
|
13
|
-
tsconfigPath
|
14
|
-
}) => {
|
15
|
-
const {
|
16
|
-
source: {
|
17
|
-
alias
|
18
|
-
}
|
19
|
-
} = modernConfig;
|
20
|
-
|
21
|
-
if (!alias) {
|
22
|
-
return null;
|
23
|
-
}
|
24
|
-
|
25
|
-
const isTsProject = fs.existsSync(tsconfigPath);
|
26
|
-
|
27
|
-
if (!isTsProject) {
|
28
|
-
return null;
|
29
|
-
}
|
30
|
-
|
31
|
-
const userAlias = getUserAlias(alias);
|
32
|
-
|
33
|
-
if (Object.keys(userAlias).length > 0) {
|
34
|
-
return chalk.red('Note: Please use `compilerOptions.paths` in "tsconfig.json" file replace `source.alias` config in "modern.config.js/ts" when project is typescript');
|
35
|
-
}
|
36
|
-
|
37
|
-
return null;
|
38
|
-
};
|
39
|
-
export const getAlias = (aliasOption, option) => {
|
40
|
-
const isTsProject = fs.existsSync(option.tsconfigPath);
|
41
|
-
let aliasConfig;
|
42
|
-
|
43
|
-
if (!isTsProject) {
|
44
|
-
aliasConfig = {
|
45
|
-
absoluteBaseUrl: option.appDirectory,
|
46
|
-
paths: applyOptionsChain({
|
47
|
-
'@': ['./src']
|
48
|
-
}, aliasOption),
|
49
|
-
isTsPath: false,
|
50
|
-
isTsProject
|
51
|
-
};
|
52
|
-
} else {
|
53
|
-
var _tsconfig$compilerOpt, _tsconfig$compilerOpt2;
|
54
|
-
|
55
|
-
const tsconfig = readTsConfigByFile(option.tsconfigPath);
|
56
|
-
const baseUrl = tsconfig === null || tsconfig === void 0 ? void 0 : (_tsconfig$compilerOpt = tsconfig.compilerOptions) === null || _tsconfig$compilerOpt === void 0 ? void 0 : _tsconfig$compilerOpt.baseUrl;
|
57
|
-
aliasConfig = {
|
58
|
-
absoluteBaseUrl: baseUrl ? path.join(option.appDirectory, baseUrl) : option.appDirectory,
|
59
|
-
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),
|
60
|
-
isTsPath: true,
|
61
|
-
isTsProject
|
62
|
-
};
|
63
|
-
}
|
64
|
-
|
65
|
-
return aliasConfig;
|
66
|
-
}; // filter invalid ts paths that are not array
|
67
|
-
|
68
|
-
export const getUserAlias = (alias = {}) => Object.keys(alias).reduce((o, k) => {
|
69
|
-
if (Array.isArray(alias[k])) {
|
70
|
-
o[k] = alias[k];
|
71
|
-
}
|
72
|
-
|
73
|
-
return o;
|
74
|
-
}, {});
|
@@ -1,27 +0,0 @@
|
|
1
|
-
// eslint-disable-next-line import/no-useless-path-segments
|
2
|
-
import { isFunction, logger, isPlainObject } from "./index";
|
3
|
-
export const applyOptionsChain = (defaults, options, utils, mergeFn = Object.assign) => {
|
4
|
-
if (!options) {
|
5
|
-
return defaults;
|
6
|
-
}
|
7
|
-
|
8
|
-
if (isPlainObject(options)) {
|
9
|
-
return mergeFn(defaults, options);
|
10
|
-
} else if (isFunction(options)) {
|
11
|
-
const ret = options(defaults, utils);
|
12
|
-
|
13
|
-
if (ret) {
|
14
|
-
if (!isPlainObject(ret)) {
|
15
|
-
logger.warn(`${options.name}: Function should mutate the config and return nothing, Or return a cloned or merged version of config object.`);
|
16
|
-
}
|
17
|
-
|
18
|
-
return ret;
|
19
|
-
}
|
20
|
-
} else if (Array.isArray(options)) {
|
21
|
-
return options.reduce((memo, cur) => applyOptionsChain(memo, cur, utils, mergeFn), defaults);
|
22
|
-
} else {
|
23
|
-
throw new Error(`applyOptionsChain error:\ndefault options is: ${JSON.stringify(defaults)}`);
|
24
|
-
}
|
25
|
-
|
26
|
-
return defaults;
|
27
|
-
};
|
package/dist/js/modern/chalk.js
DELETED
@@ -1,26 +0,0 @@
|
|
1
|
-
import { findExists } from "./findExists";
|
2
|
-
/**
|
3
|
-
* Require function compatible with esm and cjs module.
|
4
|
-
* @param filePath - File to required.
|
5
|
-
* @returns module export object.
|
6
|
-
*/
|
7
|
-
|
8
|
-
export const compatRequire = filePath => {
|
9
|
-
const mod = require(filePath);
|
10
|
-
|
11
|
-
return mod !== null && mod !== void 0 && mod.__esModule ? mod.default : mod;
|
12
|
-
};
|
13
|
-
export const requireExistModule = (filename, extensions = ['.ts', '.js']) => {
|
14
|
-
const exist = findExists(extensions.map(ext => `${filename}${ext}`));
|
15
|
-
|
16
|
-
if (!exist) {
|
17
|
-
return null;
|
18
|
-
}
|
19
|
-
|
20
|
-
return compatRequire(exist);
|
21
|
-
};
|
22
|
-
export const cleanRequireCache = filelist => {
|
23
|
-
filelist.forEach(filepath => {
|
24
|
-
delete require.cache[filepath];
|
25
|
-
});
|
26
|
-
};
|