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.
- package/lib/bin/cli-ts.d.ts +1 -0
- package/lib/bin/cli-ts.js +4 -0
- package/lib/bin/cli-ts.js.map +1 -0
- package/lib/bin/cli.d.ts +1 -0
- package/lib/bin/cli.js +4 -0
- package/lib/bin/cli.js.map +1 -0
- package/lib/commander/index.d.ts +1 -0
- package/lib/commander/index.js +79 -0
- package/lib/commander/index.js.map +1 -0
- package/lib/constants/index.d.ts +4 -0
- package/lib/constants/index.js +8 -0
- package/lib/constants/index.js.map +1 -0
- package/lib/core/build.d.ts +2 -0
- package/lib/core/build.js +74 -0
- package/lib/core/build.js.map +1 -0
- package/lib/core/cache.d.ts +2 -0
- package/lib/core/cache.js +9 -0
- package/lib/core/cache.js.map +1 -0
- package/lib/core/info.d.ts +1 -0
- package/lib/core/info.js +6 -0
- package/lib/core/info.js.map +1 -0
- package/lib/core/init-running-context.d.ts +2 -0
- package/lib/core/init-running-context.js +30 -0
- package/lib/core/init-running-context.js.map +1 -0
- package/lib/core/run-application.d.ts +2 -0
- package/lib/core/run-application.js +9 -0
- package/lib/core/run-application.js.map +1 -0
- package/lib/core/running-context.d.ts +23 -0
- package/lib/core/running-context.js +52 -0
- package/lib/core/running-context.js.map +1 -0
- package/lib/custom-config.type.d.ts +51 -0
- package/lib/custom-config.type.js +8 -0
- package/lib/custom-config.type.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -0
- package/lib/shared/file-helpers.d.ts +18 -0
- package/lib/shared/file-helpers.js +227 -0
- package/lib/shared/file-helpers.js.map +1 -0
- package/lib/webpack/dll-dependencies-manifest-plugin.d.ts +15 -0
- package/lib/webpack/dll-dependencies-manifest-plugin.js +79 -0
- package/lib/webpack/dll-dependencies-manifest-plugin.js.map +1 -0
- package/lib/webpack/load-manifest.d.ts +11 -0
- package/lib/webpack/load-manifest.js +47 -0
- package/lib/webpack/load-manifest.js.map +1 -0
- package/lib/webpack/run-webpack.d.ts +2 -0
- package/lib/webpack/run-webpack.js +23 -0
- package/lib/webpack/run-webpack.js.map +1 -0
- package/lib/webpack/server-browser-entry.d.ts +12 -0
- package/lib/webpack/server-browser-entry.js +41 -0
- package/lib/webpack/server-browser-entry.js.map +1 -0
- package/lib/webpack/webpack.browser.d.ts +4 -0
- package/lib/webpack/webpack.browser.js +88 -0
- package/lib/webpack/webpack.browser.js.map +1 -0
- package/lib/webpack/webpack.common.d.ts +7 -0
- package/lib/webpack/webpack.common.js +66 -0
- package/lib/webpack/webpack.common.js.map +1 -0
- package/lib/webpack/webpack.server.d.ts +4 -0
- package/lib/webpack/webpack.server.js +86 -0
- package/lib/webpack/webpack.server.js.map +1 -0
- package/package.json +17 -32
- package/src/bin/cli-ts.ts +3 -0
- package/src/index.ts +0 -3
- package/CHANGELOG.md +0 -26
- package/bin/cli-ts.js +0 -3
- package/bin/cli.js +0 -3
- package/src/app-utils/index.ts +0 -1
- package/src/app-utils/static.ts +0 -42
- package/src/commander/index.ts +0 -95
- package/src/configs/babel.server.config.ts +0 -42
- package/src/configs/babel.static.config.ts +0 -43
- package/src/constants/index.ts +0 -5
- package/src/core/build.ts +0 -98
- package/src/core/cache.ts +0 -15
- package/src/core/entry.ts +0 -189
- package/src/core/info.ts +0 -5
- package/src/core/init-running-context.ts +0 -27
- package/src/core/run-application.ts +0 -12
- package/src/core/running-context.ts +0 -92
- package/src/custom-config.type.ts +0 -66
- package/src/shared/file-helpers.ts +0 -192
- package/src/typings.d.ts +0 -8
- package/src/webpack/auto-entries.ts +0 -5
- package/src/webpack/dll-dependencies-manifest-plugin.ts +0 -115
- package/src/webpack/load-manifest.ts +0 -73
- package/src/webpack/run-webpack.ts +0 -22
- package/src/webpack/webpack.browser.ts +0 -107
- package/src/webpack/webpack.common.ts +0 -146
- package/src/webpack/webpack.server.ts +0 -100
- 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":";;;AAEA,yDAEgC;AAYhC,MAAM,WAAW,GAAG,+BAA+B,CAAC;AAEpD,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;QAE7D,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CACrB,WAAW,EACX,CAAC,KAAK,EAAE,EAAE;;YACR,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC;gBACtB,GAAG,EAAE,KAAK;gBACV,WAAW,EAAE,IAAI;gBACjB,MAAM,EAAE,IAAI;gBACZ,YAAY,EAAE,IAAI;gBAClB,uBAAuB;gBACvB,gBAAgB,EAAE,IAAI;gBACtB,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,IAAI;gBACb,qBAAqB;gBACrB,iBAAiB;gBACjB,cAAc,EAAE,IAAI;gBACpB,GAAG,EAAE,IAAI;gBACT,UAAU,EAAE,IAAI;aACjB,CAAC,CAAA;YAEF,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,MAAM,OAAO,GAET,IAAI,CAAC,WAAW;gBAClB,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE;oBAC3D,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;oBACvB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAY,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;oBACvD,IAAI,WAAW,EAAE;wBACf,MAAM,aAAa,GAAG,CAAC,IAAY,EAAU,EAAE;4BAC7C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gCACvB,OAAO,GAAG,IAAI,GAAG,CAAC;6BACnB;4BAED,OAAO,IAAI,CAAC;wBACd,CAAC,CAAC;wBAEF,OAAO,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAC1C,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAC5B,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CACrD,CAAC,CACH,CAAA;qBACF;oBAAA,CAAC;oBACF,OAAO,OAAO,CAAC;gBACjB,CAAC,EAAE,EAEF,CAAC;gBACF,CAAC,CAAC,EAAE,CAAC;YAEP,MAAA,IAAI,CAAC,MAAM,0CAAE,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;;gBAC7B,IAAI,KAAK,CAAC,KAAK,EAAE;oBACf,IAAI,YAAY,GAAa,EAAE,CAAC;oBAChC,MAAA,KAAK,CAAC,OAAO,0CAAE,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;wBAChC,IACE,MAAM,CAAC,IAAI,KAAK,QAAQ;+BACrB,CAAC,MAAM,CAAC,UAAU,EACrB;4BACA,OAAO;yBACR;wBACD,MAAM,aAAa,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;wBACnE,IAAI,CAAC,aAAa,EAAE;4BAClB,OAAO;yBACR;wBACD,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;wBACjC,YAAY,GAAG,YAAY,CAAC,MAAM,CAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAChC,CAAA;oBACH,CAAC,CAAC,CAAA;oBACF,IAAI,OAAO,CAAC,KAAK,CAAC,EAAS,CAAC,EAAE;wBAC5B,OAAO,CAAC,KAAK,CAAC,EAAS,CAAC,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAS,CAAC,CAAC,CAAA;qBACzE;iBACF;YACH,CAAC,CAAC,CAAA;YAEF,MAAM;YACN,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEhD,IAAA,4BAAa,EACX,IAAI,CAAC,OAAO,CAAC,QAAQ,EACrB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAClC,CAAA;QACH,CAAC,CACF,CAAA;IACH,CAAC;CACF;AAhGD,sEAgGC"}
|
|
@@ -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,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>;
|