@pinnacle0/webpack-util 0.3.4 → 0.3.5
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/README.md +7 -6
- package/package.json +2 -2
- package/src/CanadyarnRunner.d.ts +9 -0
- package/src/CanadyarnRunner.js +30 -0
- package/src/CanadyarnRunner.js.map +1 -0
- package/src/WebpackBuilder.d.ts +1 -0
- package/src/WebpackBuilder.js +5 -0
- package/src/WebpackBuilder.js.map +1 -1
- package/src/type.d.ts +5 -0
package/README.md
CHANGED
|
@@ -26,18 +26,19 @@ new WebpackBuilder({
|
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
- Checks if the project structure complies to convention described below.
|
|
29
|
+
- Optional `rootDirectory` key can be included in monorepo projects. This is used to check if [`canadyarn`](https://www.npmjs.com/package/canadyarn) script exists in root's `package.json` and check if specified dependencies have single resolved version in `yarn.lock`.
|
|
29
30
|
- Checks if source files complies with project `prettier` / `stylelint` / `eslint` rules.
|
|
30
31
|
- Run test if supported by `package.json` scripts.
|
|
31
32
|
- Creates a `webpack` compiler instance (production mode) and bundle into an `index.html` with related CSS/JS/images etc.
|
|
32
33
|
|
|
33
34
|
## Project Tech Stack Requirement
|
|
34
35
|
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
36
|
+
- yarn
|
|
37
|
+
- TypeScript/JavaScript
|
|
38
|
+
- CSS/LESS
|
|
39
|
+
- eslint
|
|
40
|
+
- stylelint
|
|
41
|
+
- prettier
|
|
41
42
|
|
|
42
43
|
Note: CSS/LESS only website also supported, without any JavaScript.
|
|
43
44
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pinnacle0/webpack-util",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@types/webpack-dev-server": "4.3.1"
|
|
46
46
|
},
|
|
47
47
|
"engines": {
|
|
48
|
-
"node": ">=
|
|
48
|
+
"node": ">= 13"
|
|
49
49
|
},
|
|
50
50
|
"jest": {
|
|
51
51
|
"preset": "ts-jest"
|
|
@@ -0,0 +1,30 @@
|
|
|
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.CanadyarnRunner = void 0;
|
|
7
|
+
const devtool_util_1 = require("@pinnacle0/devtool-util");
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
class CanadyarnRunner {
|
|
10
|
+
constructor({ rootDirectory }) {
|
|
11
|
+
this.logger = devtool_util_1.Utility.createConsoleLogger("CanadyarnRunner");
|
|
12
|
+
this.rootDirectory = rootDirectory;
|
|
13
|
+
}
|
|
14
|
+
run() {
|
|
15
|
+
this.runCanadyarn();
|
|
16
|
+
}
|
|
17
|
+
runCanadyarn() {
|
|
18
|
+
var _a;
|
|
19
|
+
const packageJSONPath = this.rootDirectory + "/package.json";
|
|
20
|
+
if (fs_1.default.existsSync(packageJSONPath) && fs_1.default.statSync(packageJSONPath).isFile()) {
|
|
21
|
+
const packageJSONContents = JSON.parse(fs_1.default.readFileSync(packageJSONPath, { encoding: "utf8" }));
|
|
22
|
+
if ((_a = packageJSONContents === null || packageJSONContents === void 0 ? void 0 : packageJSONContents.scripts) === null || _a === void 0 ? void 0 : _a.canadyarn) {
|
|
23
|
+
this.logger.task("Running `yarn run canadyarn` at " + this.rootDirectory);
|
|
24
|
+
devtool_util_1.Utility.runCommand("yarn", ["--cwd", this.rootDirectory, "canadyarn"]);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.CanadyarnRunner = CanadyarnRunner;
|
|
30
|
+
//# sourceMappingURL=CanadyarnRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CanadyarnRunner.js","sourceRoot":"","sources":["../../src/CanadyarnRunner.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgD;AAChD,4CAAoB;AAEpB,MAAa,eAAe;IAIxB,YAAY,EAAC,aAAa,EAA0B;QAFnC,WAAM,GAAG,sBAAO,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;QAGrE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACvC,CAAC;IAED,GAAG;QACC,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC;IAEO,YAAY;;QAChB,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC;QAE7D,IAAI,YAAE,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,YAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,EAAE;YACzE,MAAM,mBAAmB,GAAwB,IAAI,CAAC,KAAK,CAAC,YAAE,CAAC,YAAY,CAAC,eAAe,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;YAElH,IAAI,MAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,0CAAE,SAAS,EAAE;gBACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC1E,sBAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC;aAC1E;SACJ;IACL,CAAC;CACJ;AAxBD,0CAwBC"}
|
package/src/WebpackBuilder.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ export interface WebpackBuilderOptions extends WebpackConfigGeneratorOptions, In
|
|
|
19
19
|
*/
|
|
20
20
|
export declare class WebpackBuilder {
|
|
21
21
|
private readonly projectDirectory;
|
|
22
|
+
private readonly rootDirectory;
|
|
22
23
|
private readonly extraCheckDirectories;
|
|
23
24
|
private readonly projectStaticDirectory;
|
|
24
25
|
private readonly projectProfilingJSONOutputPath;
|
package/src/WebpackBuilder.js
CHANGED
|
@@ -12,6 +12,7 @@ const ProjectStructureChecker_1 = require("./ProjectStructureChecker");
|
|
|
12
12
|
const CodeStyleChecker_1 = require("./CodeStyleChecker");
|
|
13
13
|
const WebpackConfigGenerator_1 = require("./WebpackConfigGenerator");
|
|
14
14
|
const TestRunner_1 = require("./TestRunner");
|
|
15
|
+
const CanadyarnRunner_1 = require("./CanadyarnRunner");
|
|
15
16
|
const CoreUtil_1 = require("./CoreUtil");
|
|
16
17
|
/**
|
|
17
18
|
* Build the website by webpack.
|
|
@@ -33,6 +34,7 @@ class WebpackBuilder {
|
|
|
33
34
|
this.logger = devtool_util_1.Utility.createConsoleLogger("WebpackBuilder");
|
|
34
35
|
const webpackConfigGenerator = new WebpackConfigGenerator_1.WebpackConfigGenerator(options);
|
|
35
36
|
this.projectDirectory = options.projectDirectory;
|
|
37
|
+
this.rootDirectory = options.rootDirectory ? options.rootDirectory : this.projectDirectory;
|
|
36
38
|
this.extraCheckDirectories = (_a = options.extraCheckDirectories) !== null && _a !== void 0 ? _a : [];
|
|
37
39
|
this.projectStaticDirectory = path_1.default.join(this.projectDirectory, "static");
|
|
38
40
|
this.projectProfilingJSONOutputPath = path_1.default.join(this.projectDirectory, "profile.json");
|
|
@@ -44,6 +46,9 @@ class WebpackBuilder {
|
|
|
44
46
|
}
|
|
45
47
|
run() {
|
|
46
48
|
if (!this.isFastMode) {
|
|
49
|
+
new CanadyarnRunner_1.CanadyarnRunner({
|
|
50
|
+
rootDirectory: this.rootDirectory,
|
|
51
|
+
}).run();
|
|
47
52
|
new TestRunner_1.TestRunner({
|
|
48
53
|
projectDirectory: this.projectDirectory,
|
|
49
54
|
extraCheckDirectories: this.extraCheckDirectories,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebpackBuilder.js","sourceRoot":"","sources":["../../src/WebpackBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAgD;AAChD,wDAA0B;AAC1B,gDAAwB;AACxB,sDAA8B;AAG9B,uEAAkE;AAClE,yDAAoD;AACpD,qEAAgE;AAChE,6CAAwC;AACxC,yCAAoC;AAMpC;;;;;;;;;;;;;GAaG;AACH,MAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"WebpackBuilder.js","sourceRoot":"","sources":["../../src/WebpackBuilder.ts"],"names":[],"mappings":"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"}
|
package/src/type.d.ts
CHANGED
|
@@ -146,6 +146,11 @@ export interface InternalCheckerOptions {
|
|
|
146
146
|
* Should contains `package.json`, `tsconfig.json`, `src/`, `index.html` and a main entry.
|
|
147
147
|
*/
|
|
148
148
|
projectDirectory: string;
|
|
149
|
+
/**
|
|
150
|
+
* Root Directory of monorepo. Will be used for checking single version dependencies.
|
|
151
|
+
* Should contains `package.json`.
|
|
152
|
+
*/
|
|
153
|
+
rootDirectory?: string;
|
|
149
154
|
/**
|
|
150
155
|
* Directories that are transitively depended on by the application,
|
|
151
156
|
* and should be also checked by static analysis tools along the application project folder.
|