sugar-scripts 0.2.0-beta.0 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/lib/bin/cli-ts.d.ts +1 -0
  2. package/lib/bin/cli-ts.js +4 -0
  3. package/lib/bin/cli-ts.js.map +1 -0
  4. package/lib/bin/cli.d.ts +1 -0
  5. package/lib/bin/cli.js +4 -0
  6. package/lib/bin/cli.js.map +1 -0
  7. package/lib/commander/index.d.ts +1 -0
  8. package/lib/commander/index.js +79 -0
  9. package/lib/commander/index.js.map +1 -0
  10. package/lib/constants/index.d.ts +4 -0
  11. package/lib/constants/index.js +8 -0
  12. package/lib/constants/index.js.map +1 -0
  13. package/lib/core/build.d.ts +2 -0
  14. package/lib/core/build.js +74 -0
  15. package/lib/core/build.js.map +1 -0
  16. package/lib/core/cache.d.ts +2 -0
  17. package/lib/core/cache.js +9 -0
  18. package/lib/core/cache.js.map +1 -0
  19. package/lib/core/info.d.ts +1 -0
  20. package/lib/core/info.js +6 -0
  21. package/lib/core/info.js.map +1 -0
  22. package/lib/core/init-running-context.d.ts +2 -0
  23. package/lib/core/init-running-context.js +30 -0
  24. package/lib/core/init-running-context.js.map +1 -0
  25. package/lib/core/run-application.d.ts +2 -0
  26. package/lib/core/run-application.js +9 -0
  27. package/lib/core/run-application.js.map +1 -0
  28. package/lib/core/running-context.d.ts +23 -0
  29. package/lib/core/running-context.js +52 -0
  30. package/lib/core/running-context.js.map +1 -0
  31. package/lib/custom-config.type.d.ts +51 -0
  32. package/lib/custom-config.type.js +8 -0
  33. package/lib/custom-config.type.js.map +1 -0
  34. package/lib/index.d.ts +1 -0
  35. package/lib/index.js +6 -0
  36. package/lib/index.js.map +1 -0
  37. package/lib/shared/file-helpers.d.ts +18 -0
  38. package/lib/shared/file-helpers.js +227 -0
  39. package/lib/shared/file-helpers.js.map +1 -0
  40. package/lib/webpack/dll-dependencies-manifest-plugin.d.ts +15 -0
  41. package/lib/webpack/dll-dependencies-manifest-plugin.js +79 -0
  42. package/lib/webpack/dll-dependencies-manifest-plugin.js.map +1 -0
  43. package/lib/webpack/load-manifest.d.ts +11 -0
  44. package/lib/webpack/load-manifest.js +47 -0
  45. package/lib/webpack/load-manifest.js.map +1 -0
  46. package/lib/webpack/run-webpack.d.ts +2 -0
  47. package/lib/webpack/run-webpack.js +23 -0
  48. package/lib/webpack/run-webpack.js.map +1 -0
  49. package/lib/webpack/server-browser-entry.d.ts +12 -0
  50. package/lib/webpack/server-browser-entry.js +41 -0
  51. package/lib/webpack/server-browser-entry.js.map +1 -0
  52. package/lib/webpack/webpack.browser.d.ts +4 -0
  53. package/lib/webpack/webpack.browser.js +88 -0
  54. package/lib/webpack/webpack.browser.js.map +1 -0
  55. package/lib/webpack/webpack.common.d.ts +7 -0
  56. package/lib/webpack/webpack.common.js +66 -0
  57. package/lib/webpack/webpack.common.js.map +1 -0
  58. package/lib/webpack/webpack.server.d.ts +4 -0
  59. package/lib/webpack/webpack.server.js +86 -0
  60. package/lib/webpack/webpack.server.js.map +1 -0
  61. package/package.json +17 -32
  62. package/src/bin/cli-ts.ts +3 -0
  63. package/src/index.ts +0 -3
  64. package/CHANGELOG.md +0 -26
  65. package/bin/cli-ts.js +0 -3
  66. package/bin/cli.js +0 -3
  67. package/src/app-utils/index.ts +0 -1
  68. package/src/app-utils/static.ts +0 -42
  69. package/src/commander/index.ts +0 -95
  70. package/src/configs/babel.server.config.ts +0 -42
  71. package/src/configs/babel.static.config.ts +0 -43
  72. package/src/constants/index.ts +0 -5
  73. package/src/core/build.ts +0 -98
  74. package/src/core/cache.ts +0 -15
  75. package/src/core/entry.ts +0 -189
  76. package/src/core/info.ts +0 -5
  77. package/src/core/init-running-context.ts +0 -27
  78. package/src/core/run-application.ts +0 -12
  79. package/src/core/running-context.ts +0 -92
  80. package/src/custom-config.type.ts +0 -66
  81. package/src/shared/file-helpers.ts +0 -192
  82. package/src/typings.d.ts +0 -8
  83. package/src/webpack/auto-entries.ts +0 -5
  84. package/src/webpack/dll-dependencies-manifest-plugin.ts +0 -115
  85. package/src/webpack/load-manifest.ts +0 -73
  86. package/src/webpack/run-webpack.ts +0 -22
  87. package/src/webpack/webpack.browser.ts +0 -107
  88. package/src/webpack/webpack.common.ts +0 -146
  89. package/src/webpack/webpack.server.ts +0 -100
  90. package/tsconfig.json +0 -25
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.asyncGetDirHash = exports.getHashFromRoot = exports.rm = exports.findProject = exports.findPackage = exports.writeFileSync = exports.loadJSON = exports.findParentFile = exports.findSiblingFile = exports.searchFiles = void 0;
39
+ const fs_1 = __importDefault(require("fs"));
40
+ const path_1 = __importDefault(require("path"));
41
+ const crypto_1 = require("crypto");
42
+ const tsNode = __importStar(require("ts-node"));
43
+ const constants_1 = require("../constants");
44
+ // nodejs v10 支持
45
+ // nodejs v14 才开始支持require('fs/promises')
46
+ const fsPromises = fs_1.default.promises;
47
+ const searchFiles = (dir, fileCheck, exclude) => __awaiter(void 0, void 0, void 0, function* () {
48
+ try {
49
+ yield fsPromises.access(dir);
50
+ }
51
+ catch (e) {
52
+ return [];
53
+ }
54
+ const files = yield fsPromises.readdir(dir);
55
+ let currentFiles = [];
56
+ yield Promise.all(files.map((filename) => __awaiter(void 0, void 0, void 0, function* () {
57
+ if (exclude === filename)
58
+ return;
59
+ const fileOrDir = path_1.default.join(dir, filename);
60
+ const stats = yield fsPromises.stat(fileOrDir);
61
+ if (stats.isFile()) {
62
+ if (typeof fileCheck === 'string') {
63
+ if (filename === fileCheck) {
64
+ currentFiles.push(fileOrDir);
65
+ }
66
+ }
67
+ else if (fileCheck(fileOrDir)) {
68
+ currentFiles.push(fileOrDir);
69
+ }
70
+ }
71
+ else if (stats.isDirectory()) {
72
+ const childCurrentFiles = yield (0, exports.searchFiles)(fileOrDir, fileCheck);
73
+ currentFiles = currentFiles.concat(childCurrentFiles);
74
+ }
75
+ })));
76
+ return currentFiles;
77
+ });
78
+ exports.searchFiles = searchFiles;
79
+ const findSiblingFile = (currentFilePath, searchFileName) => __awaiter(void 0, void 0, void 0, function* () {
80
+ const dir = path_1.default.dirname(currentFilePath);
81
+ const searchFilePath = path_1.default.join(dir, searchFileName);
82
+ const searchFileStat = yield fsPromises.stat(searchFilePath);
83
+ if (searchFileStat.isFile()) {
84
+ return searchFilePath;
85
+ }
86
+ return null;
87
+ });
88
+ exports.findSiblingFile = findSiblingFile;
89
+ const findParentFile = (currentFilePath, searchFileName) => __awaiter(void 0, void 0, void 0, function* () {
90
+ const dir = path_1.default.resolve(path_1.default.dirname(currentFilePath), '../');
91
+ const searchFilePath = path_1.default.join(dir, searchFileName);
92
+ const searchFileStat = yield fsPromises.stat(searchFilePath);
93
+ if (searchFileStat.isFile()) {
94
+ return searchFilePath;
95
+ }
96
+ return null;
97
+ });
98
+ exports.findParentFile = findParentFile;
99
+ const loadJSON = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
100
+ try {
101
+ const contentBuffer = yield fsPromises.readFile(filePath);
102
+ const content = contentBuffer.toString();
103
+ return JSON.parse(content);
104
+ }
105
+ catch (e) {
106
+ return {};
107
+ }
108
+ });
109
+ exports.loadJSON = loadJSON;
110
+ const writeFileSync = (filePath, data) => {
111
+ const dir = path_1.default.dirname(filePath);
112
+ fs_1.default.mkdirSync(dir, { recursive: true });
113
+ fs_1.default.writeFileSync(filePath, data);
114
+ };
115
+ exports.writeFileSync = writeFileSync;
116
+ const findPackage = (dir) => __awaiter(void 0, void 0, void 0, function* () {
117
+ const packagePath = path_1.default.resolve(dir, 'package.json');
118
+ let existed = true;
119
+ try {
120
+ yield fsPromises.access(packagePath, fs_1.default.constants.F_OK);
121
+ }
122
+ catch (e) {
123
+ existed = false;
124
+ }
125
+ let packageConfigs = null;
126
+ try {
127
+ packageConfigs = require(path_1.default.resolve(dir, constants_1.SUGAR_PACKAGE_CONFIG_FILENAME));
128
+ console.log(path_1.default.resolve(dir, constants_1.SUGAR_PACKAGE_CONFIG_FILENAME));
129
+ }
130
+ catch (e) { }
131
+ if (existed) {
132
+ return {
133
+ root: dir,
134
+ packageJson: require(packagePath),
135
+ packageConfigs
136
+ };
137
+ }
138
+ if (dir === '/') {
139
+ throw new Error('not found package.json');
140
+ }
141
+ return (0, exports.findPackage)(path_1.default.resolve(dir, '../'));
142
+ });
143
+ exports.findPackage = findPackage;
144
+ const findProject = (dir) => __awaiter(void 0, void 0, void 0, function* () {
145
+ const projectPath = path_1.default.resolve(dir, constants_1.SUGAR_PROJECT_CONFIG_FILENAME);
146
+ let projectConfigs = null;
147
+ let existedFile = '';
148
+ try {
149
+ yield fsPromises.access(projectPath + '.ts', fs_1.default.constants.F_OK);
150
+ existedFile = projectPath + '.ts';
151
+ }
152
+ catch (e) { }
153
+ if (!existedFile) {
154
+ try {
155
+ yield fsPromises.access(projectPath + '.js', fs_1.default.constants.F_OK);
156
+ existedFile = projectPath + '.js';
157
+ }
158
+ catch (e) { }
159
+ }
160
+ if (existedFile) {
161
+ tsNode.register({
162
+ cwd: dir,
163
+ projectSearchDir: dir,
164
+ project: path_1.default.resolve(dir, './tsconfig.json'),
165
+ transpileOnly: true,
166
+ require: [
167
+ existedFile
168
+ ]
169
+ });
170
+ console.log(existedFile);
171
+ try {
172
+ projectConfigs = require(existedFile);
173
+ }
174
+ catch (e) {
175
+ throw e;
176
+ }
177
+ if (projectConfigs) {
178
+ return {
179
+ projectRoot: dir,
180
+ projectConfigs
181
+ };
182
+ }
183
+ }
184
+ if (dir === '/') {
185
+ throw new Error('not found sugar.project');
186
+ }
187
+ return (0, exports.findProject)(path_1.default.resolve(dir, '../'));
188
+ });
189
+ exports.findProject = findProject;
190
+ const rm = (filePath) => __awaiter(void 0, void 0, void 0, function* () {
191
+ const stat = yield fsPromises.stat(filePath);
192
+ if (stat.isFile()
193
+ || stat.isSymbolicLink()) {
194
+ yield fsPromises.unlink(filePath);
195
+ return;
196
+ }
197
+ if (stat.isDirectory()) {
198
+ const childFilePaths = yield fsPromises.readdir(filePath);
199
+ yield Promise.all(childFilePaths.map((childFilePath) => ((0, exports.rm)(path_1.default.resolve(filePath, childFilePath)))));
200
+ yield fsPromises.rmdir(filePath);
201
+ return;
202
+ }
203
+ });
204
+ exports.rm = rm;
205
+ function getHashFromRoot(root) {
206
+ const hash = (0, crypto_1.createHash)('md5');
207
+ hash.update(root);
208
+ return `s_${hash.digest('hex')}`;
209
+ }
210
+ exports.getHashFromRoot = getHashFromRoot;
211
+ function asyncGetDirHash(dirPath) {
212
+ return new Promise((resolve, reject) => {
213
+ const hash = (0, crypto_1.createHash)('sha1');
214
+ const dir = fs_1.default.opendirSync(dirPath);
215
+ console.log(dir);
216
+ reject();
217
+ // const readStream = fs.createReadStream(dirPath)
218
+ // readStream.on('data', (data) => {
219
+ // hash.update(data)
220
+ // })
221
+ // readStream.on('end', () => {
222
+ // resolve(hash.digest('hex'));
223
+ // })
224
+ });
225
+ }
226
+ exports.asyncGetDirHash = asyncGetDirHash;
227
+ //# sourceMappingURL=file-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-helpers.js","sourceRoot":"","sources":["../../src/shared/file-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import webpack from 'webpack';
2
+ export interface DllDependenciesManifestPluginOptions {
3
+ dllAssets: {
4
+ [dllName: string]: string[];
5
+ };
6
+ fileName: string;
7
+ generate: (entries: {
8
+ [entry: string]: string[];
9
+ }) => any;
10
+ }
11
+ export declare class DllDependenciesManifestPlugin {
12
+ options: DllDependenciesManifestPluginOptions;
13
+ constructor(options: DllDependenciesManifestPluginOptions);
14
+ apply(compiler: webpack.Compiler): void;
15
+ }
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DllDependenciesManifestPlugin = void 0;
4
+ const file_helpers_1 = require("../shared/file-helpers");
5
+ const PLUGIN_NAME = 'DllDependenciesManifestPlugin';
6
+ class DllDependenciesManifestPlugin {
7
+ constructor(options) {
8
+ this.options = options;
9
+ }
10
+ apply(compiler) {
11
+ const logger = compiler.getInfrastructureLogger(PLUGIN_NAME);
12
+ compiler.hooks.done.tap(PLUGIN_NAME, (stats) => {
13
+ var _a;
14
+ var data = stats.toJson({
15
+ all: false,
16
+ entrypoints: true,
17
+ chunks: true,
18
+ chunkModules: true,
19
+ // nestedModules: true,
20
+ dependentModules: true,
21
+ moduleAssets: true,
22
+ assets: true,
23
+ modules: true,
24
+ // moduleTrace: true,
25
+ // reasons: true,
26
+ chunkRelations: true,
27
+ ids: true,
28
+ publicPath: true
29
+ });
30
+ const publicPath = data.publicPath;
31
+ const entries = data.entrypoints
32
+ ? Object.keys(data.entrypoints).reduce((entries, entryKey) => {
33
+ entries[entryKey] = [];
34
+ const entryAssets = data.entrypoints[entryKey].assets;
35
+ if (entryAssets) {
36
+ const normalizePath = (path) => {
37
+ if (!path.endsWith('/')) {
38
+ return `${path}/`;
39
+ }
40
+ return path;
41
+ };
42
+ entries[entryKey] = entries[entryKey].concat(entryAssets.map(({ name }) => (publicPath ? normalizePath(publicPath) + name : name)));
43
+ }
44
+ ;
45
+ return entries;
46
+ }, {})
47
+ : {};
48
+ (_a = data.chunks) === null || _a === void 0 ? void 0 : _a.forEach((chunk) => {
49
+ var _a;
50
+ if (chunk.entry) {
51
+ let depDllAssets = [];
52
+ (_a = chunk.modules) === null || _a === void 0 ? void 0 : _a.forEach((module) => {
53
+ if (module.type !== 'module'
54
+ || !module.identifier) {
55
+ return;
56
+ }
57
+ const dllNameResult = /dll-reference (.+)$/.exec(module.identifier);
58
+ if (!dllNameResult) {
59
+ return;
60
+ }
61
+ const dllName = dllNameResult[1];
62
+ depDllAssets = depDllAssets.concat(this.options.dllAssets[dllName]);
63
+ });
64
+ if (entries[chunk.id]) {
65
+ entries[chunk.id] = depDllAssets.concat(entries[chunk.id]);
66
+ }
67
+ }
68
+ });
69
+ // 去重复
70
+ Object.keys(entries).forEach((key) => {
71
+ entries[key] = Array.from(new Set(entries[key]));
72
+ });
73
+ const manifest = this.options.generate(entries);
74
+ (0, file_helpers_1.writeFileSync)(this.options.fileName, JSON.stringify(manifest, null, 2));
75
+ });
76
+ }
77
+ }
78
+ exports.DllDependenciesManifestPlugin = DllDependenciesManifestPlugin;
79
+ //# sourceMappingURL=dll-dependencies-manifest-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dll-dependencies-manifest-plugin.js","sourceRoot":"","sources":["../../src/webpack/dll-dependencies-manifest-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare function loadAllDllModulesManifest(dir: string, exclude?: string): Promise<{
2
+ context: string;
3
+ manifest: {
4
+ name: string;
5
+ content: any;
6
+ };
7
+ moduleName: string;
8
+ name: string;
9
+ assets: string[];
10
+ }[]>;
11
+ export declare function loadBaseManifest(dir: string): Promise<any>;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.loadBaseManifest = exports.loadAllDllModulesManifest = void 0;
16
+ const path_1 = __importDefault(require("path"));
17
+ const file_helpers_1 = require("../shared/file-helpers");
18
+ function loadAllDllModulesManifest(dir, exclude) {
19
+ return __awaiter(this, void 0, void 0, function* () {
20
+ const moduleFilePaths = yield (0, file_helpers_1.searchFiles)(dir, 'dll.modules.manifest.json', exclude);
21
+ const modules = yield Promise.all(moduleFilePaths.map((moduleFilePath) => __awaiter(this, void 0, void 0, function* () {
22
+ const moduleConfigFilePath = yield (0, file_helpers_1.findParentFile)(moduleFilePath, 'manifest.json');
23
+ if (!moduleConfigFilePath) {
24
+ throw new Error(`not find manifest.json for ${moduleFilePath}`);
25
+ }
26
+ const moduleConfig = yield (0, file_helpers_1.loadJSON)(moduleConfigFilePath);
27
+ const module = yield (0, file_helpers_1.loadJSON)(moduleFilePath);
28
+ const name = module.name.split('_sn_').slice(1).join('_sn_');
29
+ return {
30
+ context: moduleConfig.context,
31
+ manifest: module,
32
+ moduleName: module.name,
33
+ name,
34
+ assets: moduleConfig.entries[name]
35
+ };
36
+ })));
37
+ return modules.filter((module) => !!module);
38
+ });
39
+ }
40
+ exports.loadAllDllModulesManifest = loadAllDllModulesManifest;
41
+ function loadBaseManifest(dir) {
42
+ return __awaiter(this, void 0, void 0, function* () {
43
+ return (0, file_helpers_1.loadJSON)(path_1.default.resolve(dir, './manifest.json'));
44
+ });
45
+ }
46
+ exports.loadBaseManifest = loadBaseManifest;
47
+ //# sourceMappingURL=load-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-manifest.js","sourceRoot":"","sources":["../../src/webpack/load-manifest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,gDAAwB;AAExB,yDAIgC;AAEhC,SAAsB,yBAAyB,CAC7C,GAAW,EACX,OAAgB;;QAWhB,MAAM,eAAe,GAAG,MAAM,IAAA,0BAAW,EACvC,GAAG,EACH,2BAA2B,EAC3B,OAAO,CACR,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,eAAe,CAAC,GAAG,CAAC,CAAO,cAAc,EAAE,EAAE;YAC3C,MAAM,oBAAoB,GAAG,MAAM,IAAA,6BAAc,EAC/C,cAAc,EACd,eAAe,CAChB,CAAC;YACF,IAAI,CAAC,oBAAoB,EAAE;gBACzB,MAAM,IAAI,KAAK,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAA;aAChE;YACD,MAAM,YAAY,GAAG,MAAM,IAAA,uBAAQ,EAAC,oBAAoB,CAAC,CAAC;YAC1D,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAQ,EAAC,cAAc,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7D,OAAO;gBACL,OAAO,EAAE,YAAY,CAAC,OAAO;gBAC7B,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,IAAI;gBACJ,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;aACnC,CAAA;QACH,CAAC,CAAA,CAAC,CACH,CAAA;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CASvC,CAAC;IACN,CAAC;CAAA;AAnDD,8DAmDC;AAED,SAAsB,gBAAgB,CACpC,GAAW;;QAEX,OAAO,IAAA,uBAAQ,EACb,cAAI,CAAC,OAAO,CACV,GAAG,EACH,iBAAiB,CAClB,CACF,CAAC;IACJ,CAAC;CAAA;AATD,4CASC"}
@@ -0,0 +1,2 @@
1
+ import WebpackChainConfig from 'webpack-chain';
2
+ export declare const runWebpack: (chainConfig: WebpackChainConfig) => Promise<unknown>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.runWebpack = void 0;
7
+ const webpack_1 = __importDefault(require("webpack"));
8
+ const runWebpack = (chainConfig) => {
9
+ const compiler = (0, webpack_1.default)(chainConfig.toConfig());
10
+ return new Promise((resolve, reject) => {
11
+ compiler.run((err, stats) => {
12
+ if (err || stats && stats.hasErrors()) {
13
+ reject(err || (stats === null || stats === void 0 ? void 0 : stats.toString()));
14
+ console.log(stats === null || stats === void 0 ? void 0 : stats.toString());
15
+ return;
16
+ }
17
+ console.log(stats === null || stats === void 0 ? void 0 : stats.toString());
18
+ resolve(stats);
19
+ });
20
+ });
21
+ };
22
+ exports.runWebpack = runWebpack;
23
+ //# sourceMappingURL=run-webpack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-webpack.js","sourceRoot":"","sources":["../../src/webpack/run-webpack.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAIvB,MAAM,UAAU,GAAG,CACxB,WAA+B,EAC/B,EAAE;IACF,MAAM,QAAQ,GAAG,IAAA,iBAAO,EACtB,WAAW,CAAC,QAAQ,EAAE,CACvB,CAAC;IAEF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;YAC1B,IAAI,GAAG,IAAI,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,EAAE;gBACrC,MAAM,CAAC,GAAG,KAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAA,CAAC,CAAA;gBAChC,OAAO,CAAC,GAAG,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAC,CAAA;gBAC9B,OAAO;aACR;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,EAAE,CAAC,CAAA;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA;AAlBY,QAAA,UAAU,cAkBtB"}
@@ -0,0 +1,12 @@
1
+ import webpack from 'webpack';
2
+ import { SugarScriptsContext } from '../core/running-context';
3
+ export interface SugarServerBrowserEntryPluginOptions {
4
+ root: string;
5
+ output: string;
6
+ }
7
+ export declare function getCacheFilePath(context: SugarScriptsContext): string;
8
+ export declare class SugarServerBrowserEntryPlugin {
9
+ options: SugarServerBrowserEntryPluginOptions;
10
+ constructor(options: SugarServerBrowserEntryPluginOptions);
11
+ apply(compiler: webpack.Compiler): void;
12
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SugarServerBrowserEntryPlugin = exports.getCacheFilePath = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const file_helpers_1 = require("../shared/file-helpers");
9
+ const PLUGIN_NAME = 'SugarServerEntryPlugin';
10
+ const CACHE_FILE_NAME = 'server-browser-entries.json';
11
+ function getCacheFilePath(context) {
12
+ return path_1.default.resolve(context.getCacheDir(), CACHE_FILE_NAME);
13
+ }
14
+ exports.getCacheFilePath = getCacheFilePath;
15
+ class SugarServerBrowserEntryPlugin {
16
+ constructor(options) {
17
+ this.options = options;
18
+ }
19
+ apply(compiler) {
20
+ const logger = compiler.getInfrastructureLogger(PLUGIN_NAME);
21
+ const data = {};
22
+ compiler.hooks.normalModuleFactory.tap(PLUGIN_NAME, (factory) => {
23
+ factory.hooks.beforeResolve
24
+ .tap(PLUGIN_NAME, (result) => {
25
+ if (result.request.startsWith('sugar-browser-entry/')) {
26
+ const filePath = result.request.slice('sugar-browser-entry/'.length);
27
+ const absoluteFilePath = path_1.default.resolve(result.context, filePath);
28
+ const entryKey = path_1.default.relative(this.options.root, absoluteFilePath);
29
+ data[entryKey] = absoluteFilePath;
30
+ const base64 = Buffer.from(`export default "${entryKey}"`).toString('base64');
31
+ result.request = `data:text/javascript;charset=utf-8;base64,${base64}`;
32
+ }
33
+ });
34
+ });
35
+ compiler.hooks.done.tap(PLUGIN_NAME, () => {
36
+ (0, file_helpers_1.writeFileSync)(this.options.output, JSON.stringify(data, null, 2));
37
+ });
38
+ }
39
+ }
40
+ exports.SugarServerBrowserEntryPlugin = SugarServerBrowserEntryPlugin;
41
+ //# sourceMappingURL=server-browser-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-browser-entry.js","sourceRoot":"","sources":["../../src/webpack/server-browser-entry.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAOxB,yDAEgC;AAQhC,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAC7C,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAEtD,SAAgB,gBAAgB,CAAE,OAA4B;IAC5D,OAAO,cAAI,CAAC,OAAO,CACjB,OAAO,CAAC,WAAW,EAAE,EACrB,eAAe,CAChB,CAAA;AACH,CAAC;AALD,4CAKC;AAED,MAAa,6BAA6B;IAExC,YAAa,OAA6C;QACxD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAE,QAA0B;QAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,EAEZ,CAAC;QAEF,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CACpC,WAAW,EACX,CAAC,OAAO,EAAE,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,aAAa;iBACxB,GAAG,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC3B,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE;oBACrD,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CACnC,sBAAsB,CAAC,MAAM,CAC9B,CAAC;oBACF,MAAM,gBAAgB,GAAG,cAAI,CAAC,OAAO,CACnC,MAAM,CAAC,OAAO,EACd,QAAQ,CACT,CAAA;oBAED,MAAM,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,gBAAgB,CACjB,CAAC;oBAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC;oBAClC,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CACxB,mBAAmB,QAAQ,GAAG,CAC/B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACrB,MAAM,CAAC,OAAO,GAAG,6CAA6C,MAAM,EAAE,CAAC;iBACxE;YACH,CAAC,CAAC,CAAC;QACP,CAAC,CACF,CAAC;QAEF,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CACrB,WAAW,EACX,GAAG,EAAE;YACH,IAAA,4BAAa,EACX,IAAI,CAAC,OAAO,CAAC,MAAM,EACnB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAG,CAAC,CAAC,CAC/B,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF;AAnDD,sEAmDC"}
@@ -0,0 +1,4 @@
1
+ import WebpackChainConfig from 'webpack-chain';
2
+ import { SugarScriptsContext } from '../core/running-context';
3
+ export declare function mergeBrowserEntry(context: SugarScriptsContext, chainConfig: WebpackChainConfig): Promise<void>;
4
+ export declare function mergeBrowserCustomConfig(context: SugarScriptsContext, chainConfig: WebpackChainConfig): Promise<void>;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.mergeBrowserCustomConfig = exports.mergeBrowserEntry = void 0;
16
+ const path_1 = __importDefault(require("path"));
17
+ const glob_1 = require("glob");
18
+ const webpack_manifest_plugin_1 = require("webpack-manifest-plugin");
19
+ const server_browser_entry_1 = require("./server-browser-entry");
20
+ function normalEntryPath(entryPath, root) {
21
+ if (entryPath.startsWith('.')) {
22
+ return glob_1.glob.sync(path_1.default.join(root, entryPath));
23
+ }
24
+ return [entryPath];
25
+ }
26
+ function mergeBrowserEntry(context, chainConfig) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ if (!context.packageConfig.browser)
29
+ return;
30
+ const browserConfig = context.packageConfig.browser;
31
+ const autoBrowserEntryFilePath = (0, server_browser_entry_1.getCacheFilePath)(context);
32
+ if (context.packageConfig.server) {
33
+ chainConfig.plugin('manifest')
34
+ .use(webpack_manifest_plugin_1.WebpackManifestPlugin, [{
35
+ fileName: path_1.default.resolve(context.packageConfig.server.output, './browser-manifest.json'),
36
+ useEntryKeys: true,
37
+ writeToFileEmit: true
38
+ }]);
39
+ }
40
+ try {
41
+ const configEntry = require(autoBrowserEntryFilePath);
42
+ Object.keys(configEntry)
43
+ .forEach((entryKey) => {
44
+ const entryPath = configEntry[entryKey];
45
+ if (typeof entryPath === 'string') {
46
+ chainConfig.entry(entryKey)
47
+ .add(entryPath);
48
+ }
49
+ });
50
+ }
51
+ catch (e) {
52
+ console.log(e);
53
+ }
54
+ if (browserConfig.entry) {
55
+ const entry = browserConfig.entry;
56
+ Object.keys(entry)
57
+ .forEach((entryKey) => {
58
+ const entryPath = entry[entryKey];
59
+ if (Array.isArray(entryPath)) {
60
+ chainConfig.entry(entryKey)
61
+ .merge(entryPath.reduce((entryPaths, globPath) => {
62
+ return [
63
+ ...entryPaths,
64
+ ...normalEntryPath(globPath, context.root)
65
+ ];
66
+ }, []));
67
+ }
68
+ else {
69
+ chainConfig.entry(entryKey)
70
+ .merge(normalEntryPath(entryPath, context.root));
71
+ }
72
+ });
73
+ }
74
+ });
75
+ }
76
+ exports.mergeBrowserEntry = mergeBrowserEntry;
77
+ function mergeBrowserCustomConfig(context, chainConfig) {
78
+ return __awaiter(this, void 0, void 0, function* () {
79
+ if (context.projectConfigs.browserWebpackConfig) {
80
+ yield context.projectConfigs.browserWebpackConfig(chainConfig, context);
81
+ }
82
+ if (context.packageConfigs.browserWebpackConfig) {
83
+ yield context.packageConfigs.browserWebpackConfig(chainConfig, context);
84
+ }
85
+ });
86
+ }
87
+ exports.mergeBrowserCustomConfig = mergeBrowserCustomConfig;
88
+ //# sourceMappingURL=webpack.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack.browser.js","sourceRoot":"","sources":["../../src/webpack/webpack.browser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import WebpackChainConfig from 'webpack-chain';
2
+ import { SugarScriptsContext } from '../core/running-context';
3
+ /**
4
+ * common 是创建基础的webpack配置项,基于webpack-chain
5
+ * 用于被 webpack.dll 、webpack.frontend、webpack.server扩展
6
+ */
7
+ export declare function createCommonChainConfig(context: SugarScriptsContext, output: string): Promise<WebpackChainConfig>;