@tramvai/cli 3.24.3 → 3.25.0
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 +1 -0
- package/lib/builder/webpack/devServer/setup.d.ts.map +1 -1
- package/lib/builder/webpack/devServer/setup.js +1 -1
- package/lib/builder/webpack/devServer/setup.js.map +1 -1
- package/lib/library/webpack/loaders/image-loader/getImageMiniatureURL.d.ts +2 -0
- package/lib/library/webpack/loaders/image-loader/getImageMiniatureURL.d.ts.map +1 -0
- package/lib/library/webpack/loaders/image-loader/getImageMiniatureURL.js +29 -0
- package/lib/library/webpack/loaders/image-loader/getImageMiniatureURL.js.map +1 -0
- package/lib/library/webpack/loaders/image-loader/index.d.ts +2 -1
- package/lib/library/webpack/loaders/image-loader/index.d.ts.map +1 -1
- package/lib/library/webpack/loaders/image-loader/index.js +11 -4
- package/lib/library/webpack/loaders/image-loader/index.js.map +1 -1
- package/lib/typings/application.d.ts +1 -0
- package/lib/typings/application.d.ts.map +1 -1
- package/lib/typings/public.d.ts +1 -0
- package/lib/typings/public.d.ts.map +1 -1
- package/lib/typings/public.js.map +1 -1
- package/package.json +4 -3
- package/src/builder/webpack/devServer/setup.ts +4 -1
- package/src/library/webpack/loaders/image-loader/getImageMiniatureURL.ts +34 -0
- package/src/library/webpack/loaders/image-loader/index.ts +14 -3
- package/src/typings/application.ts +1 -0
- package/src/typings/public.ts +1 -0
package/README.md
CHANGED
|
@@ -305,3 +305,4 @@ Documentation:
|
|
|
305
305
|
|
|
306
306
|
- [How to use React Profiler](https://legacy.reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html)
|
|
307
307
|
- [Introducing a new React profiler (React 18)](https://github.com/reactwg/react-18/discussions/76)
|
|
308
|
+
- [React DevTools tutorial](https://react-devtools-tutorial.vercel.app/)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAsC9D,eAAO,MAAM,eAAe;QAMtB,SAAS;cACH,aAAa;mBACR,cAAc,sBAAsB,CAAC;kBACtC,0BAA0B;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/setup.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAsC9D,eAAO,MAAM,eAAe;QAMtB,SAAS;cACH,aAAa;mBACR,cAAc,sBAAsB,CAAC;kBACtC,0BAA0B;yBAyCzC,CAAC"}
|
|
@@ -56,7 +56,7 @@ const createDevServer = ({ di, compiler, configManager, staticServer, }) => {
|
|
|
56
56
|
},
|
|
57
57
|
});
|
|
58
58
|
if (configManager.hotRefresh.enabled) {
|
|
59
|
-
app.use(getHotModulePrefix(configManager), (0, webpack_hot_middleware_1.default)(compiler, { log: false }));
|
|
59
|
+
app.use(getHotModulePrefix(configManager), (0, webpack_hot_middleware_1.default)(compiler, { log: false, statsOptions: { cached: false } }));
|
|
60
60
|
}
|
|
61
61
|
const rootDir = di.get(tokens_1.CONFIG_ROOT_DIR_TOKEN);
|
|
62
62
|
app.use(express_1.default.static(rootDir));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/setup.ts"],"names":[],"mappings":";;;;AAAA,8DAA8B;AAE9B,4FAA0D;AAC1D,4FAA0D;AAK1D,+CAA2D;AAC3D,sCAAwE;AACxE,gDAA6C;AAC7C,uDAA+E;AAE/E,MAAM,SAAS,GAAG,CAAC,aAA4B,EAAU,EAAE;IACzD,IAAI,IAAA,wBAAa,EAAC,aAAa,CAAC,EAAE;QAChC,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,IAAA,qBAAU,EAAC,aAAa,CAAC,EAAE;QAC7B,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;KACjC;IAED,IAAI,IAAA,mBAAQ,EAAC,aAAa,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,CAAC,IAAI,WAAW,CAAC;KAC1C;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,aAA4B,EAAU,EAAE;IAClE,IAAI,IAAA,wBAAa,EAAC,aAAa,CAAC,EAAE;QAChC,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;KAC1C;IAED,IAAI,IAAA,qBAAU,EAAC,aAAa,CAAC,EAAE;QAC7B,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC;KACjC;IAED,IAAI,IAAA,mBAAQ,EAAC,aAAa,CAAC,EAAE;QAC3B,OAAO,IAAI,aAAa,CAAC,IAAI,WAAW,CAAC;KAC1C;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,CAAC,IAAI,mBAAmB,CAAC,CAAC;AAC5D,CAAC,CAAC;AAEK,MAAM,eAAe,GAAG,CAAC,EAC9B,EAAE,EACF,QAAQ,EACR,aAAa,EACb,YAAY,GAMb,EAAE,EAAE;IACH,OAAO,SAAe,SAAS;;YAC7B,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;YAEtB,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;gBACzB,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,qBAAqB,EAAE,GAAG,CAAC,CAAC;gBAEvC,IAAI,EAAE,CAAC;YACT,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,IAAA,gCAAoB,EAAC,QAAQ,CAAC,CAAC;YAErD,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC;YAEjD,EAAE,CAAC,QAAQ,CAAC;gBACV,OAAO,EAAE,+BAAsB;gBAC/B,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,QAAQ;aACzC,CAAC,CAAC;YAEH,EAAE,CAAC,QAAQ,CAAC;gBACV,OAAO,EAAE,4BAAmB;gBAC5B,KAAK,EAAE,IAAI;gBACX,QAAQ,EAAE,GAAG,EAAE;oBACb,OAAO,IAAA,aAAK,EAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,aAAa,CAAC,UAAU,CAAC,OAAO,EAAE;gBACpC,GAAG,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../../src/builder/webpack/devServer/setup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getImageMiniatureURL.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/loaders/image-loader/getImageMiniatureURL.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,wBAAwB,YAC1B,MAAM,SACR,MAAM,UACL,MAAM,aACH,MAAM,oBAwBlB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getImageMiniatureDataURL = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const BLUR_WIDTH = 10;
|
|
6
|
+
const BLUR_HEIGHT = 10;
|
|
7
|
+
const getImageMiniatureDataURL = (content, width, height, extension) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
8
|
+
try {
|
|
9
|
+
const sharp = require('sharp');
|
|
10
|
+
const image = sharp(content, { sequentialRead: true });
|
|
11
|
+
// https://sharp.pixelplumbing.com/api-resize#resize
|
|
12
|
+
image.resize(BLUR_WIDTH, BLUR_HEIGHT, {
|
|
13
|
+
fit: 'inside',
|
|
14
|
+
});
|
|
15
|
+
if (extension === 'jpeg' || extension === 'jpg') {
|
|
16
|
+
image.jpeg({
|
|
17
|
+
progressive: true,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const optimizedBuffer = yield image.toBuffer();
|
|
21
|
+
const dataURL = `data:image/${extension};base64,${optimizedBuffer.toString('base64')}`;
|
|
22
|
+
return dataURL;
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
console.error('image placeholder generation error: ', e);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
exports.getImageMiniatureDataURL = getImageMiniatureDataURL;
|
|
29
|
+
//# sourceMappingURL=getImageMiniatureURL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getImageMiniatureURL.js","sourceRoot":"","sources":["../../../../../src/library/webpack/loaders/image-loader/getImageMiniatureURL.ts"],"names":[],"mappings":";;;;AAEA,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,EAAE,CAAC;AAEhB,MAAM,wBAAwB,GAAG,CACtC,OAAe,EACf,KAAa,EACb,MAAc,EACd,SAAiB,EACjB,EAAE;IACF,IAAI;QACF,MAAM,KAAK,GAAiB,OAAO,CAAC,OAAO,CAAC,CAAC;QAE7C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,oDAAoD;QACpD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE;YACpC,GAAG,EAAE,QAAQ;SACd,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,KAAK,EAAE;YAC/C,KAAK,CAAC,IAAI,CAAC;gBACT,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;SACJ;QAED,MAAM,eAAe,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;QAE/C,MAAM,OAAO,GAAG,cAAc,SAAS,WAAW,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEvF,OAAO,OAAO,CAAC;KAChB;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;KAC1D;AACH,CAAC,CAAA,CAAC;AA5BW,QAAA,wBAAwB,4BA4BnC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { LoaderContext } from 'webpack';
|
|
2
3
|
/**
|
|
3
4
|
* Reuse file-loader logic, but return a object with src and size of image
|
|
4
5
|
*/
|
|
5
|
-
export default function (this: LoaderContext<{}>, content:
|
|
6
|
+
export default function (this: LoaderContext<{}>, content: Buffer): Promise<any>;
|
|
6
7
|
export declare const raw = true;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/loaders/image-loader/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/loaders/image-loader/index.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;GAEG;AACH,yBAA+B,IAAI,EAAE,aAAa,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,gBA2BtE;AAED,eAAO,MAAM,GAAG,OAAO,CAAC"}
|
|
@@ -3,14 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.raw = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const image_size_1 = tslib_1.__importDefault(require("image-size"));
|
|
6
|
+
const loader_utils_1 = require("loader-utils");
|
|
7
|
+
const getImageMiniatureURL_1 = require("./getImageMiniatureURL");
|
|
6
8
|
/**
|
|
7
9
|
* Reuse file-loader logic, but return a object with src and size of image
|
|
8
10
|
*/
|
|
9
11
|
function default_1(content) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const result = require('file-loader').call(this, content);
|
|
14
|
+
const dimensions = (0, image_size_1.default)(this.resourcePath);
|
|
15
|
+
const options = this.getOptions();
|
|
16
|
+
const extension = (0, loader_utils_1.interpolateName)(this, '[ext]', options);
|
|
17
|
+
const dataURL = yield (0, getImageMiniatureURL_1.getImageMiniatureDataURL)(content, dimensions.width, dimensions.height, extension);
|
|
18
|
+
return result.replace(/^export default (__webpack_public_path__ \+ .+);$/, `const path = $1;
|
|
14
19
|
|
|
15
20
|
export default path;
|
|
16
21
|
|
|
@@ -18,7 +23,9 @@ export const image = {
|
|
|
18
23
|
src: $1,
|
|
19
24
|
width: ${JSON.stringify(dimensions.width)},
|
|
20
25
|
height: ${JSON.stringify(dimensions.height)},
|
|
26
|
+
blurDataURL: ${JSON.stringify(dataURL)},
|
|
21
27
|
};`);
|
|
28
|
+
});
|
|
22
29
|
}
|
|
23
30
|
exports.default = default_1;
|
|
24
31
|
exports.raw = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/library/webpack/loaders/image-loader/index.ts"],"names":[],"mappings":";;;;AAAA,oEAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/library/webpack/loaders/image-loader/index.ts"],"names":[],"mappings":";;;;AAAA,oEAAgC;AAEhC,+CAA+C;AAC/C,iEAAkE;AAElE;;GAEG;AACH,mBAAwD,OAAe;;QACrE,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,UAAU,GAAG,IAAA,oBAAM,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAElC,MAAM,SAAS,GAAG,IAAA,8BAAe,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,MAAM,IAAA,+CAAwB,EAC5C,OAAO,EACP,UAAU,CAAC,KAAK,EAChB,UAAU,CAAC,MAAM,EACjB,SAAS,CACV,CAAC;QAEF,OAAO,MAAM,CAAC,OAAO,CACnB,mDAAmD,EACnD;;;;;;WAMO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;iBAC5B,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;GACrC,CACA,CAAC;IACJ,CAAC;CAAA;AA3BD,4BA2BC;AAEY,QAAA,GAAG,GAAG,IAAI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/typings/application.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/typings/application.ts"],"names":[],"mappings":"AAAA,UAAU,WAAW;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,WAAW;QACnB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC7B;IACD,MAAM,UAAU,EAAE,WAAW,CAAC;IAC9B,SAAS,UAAU,CAAC;CACrB;AAED,OAAO,QAAQ,SAAS,CAAC;IACvB,MAAM,IAAI,EAAE,MAAM,CAAC;IACnB,SAAS,IAAI,CAAC;CACf;AAED,KAAK,WAAW,GAAG,MAAM,CAAC;AAE1B,OAAO,QAAQ,OAAO,CAAC;IACrB,MAAM,GAAG,EAAE,WAAW,CAAC;IACvB,eAAe,GAAG,CAAC;IACnB,MAAM,CAAC,MAAM,KAAK,EAAE,WAAW,CAAC;CACjC;AACD,OAAO,QAAQ,OAAO,CAAC;IACrB,MAAM,GAAG,EAAE,WAAW,CAAC;IACvB,eAAe,GAAG,CAAC;IACnB,MAAM,CAAC,MAAM,KAAK,EAAE,WAAW,CAAC;CACjC;AACD,OAAO,QAAQ,QAAQ,CAAC;IACtB,MAAM,GAAG,EAAE,WAAW,CAAC;IACvB,eAAe,GAAG,CAAC;IACnB,MAAM,CAAC,MAAM,KAAK,EAAE,WAAW,CAAC;CACjC;AACD,OAAO,QAAQ,QAAQ,CAAC;IACtB,MAAM,GAAG,EAAE,WAAW,CAAC;IACvB,eAAe,GAAG,CAAC;IACnB,MAAM,CAAC,MAAM,KAAK,EAAE,WAAW,CAAC;CACjC;AAED,OAAO,QAAQ,OAAO,CAAC;IACrB,MAAM,KAAK,EAAE,WAAW,CAAC;IACzB,SAAS,KAAK,CAAC;CAChB;AACD,OAAO,QAAQ,aAAa,CAAC;IAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;IAErD,KAAK,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IAExD;;OAEG;IACH,MAAM,GAAG,EAAE,YAAY,CAAC;IAExB,SAAS,GAAG,CAAC;CACd"}
|
package/lib/typings/public.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/typings/public.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../src/typings/public.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;AAE/D,cAAc,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/typings/public.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../src/typings/public.ts"],"names":[],"mappings":";;;AAWA,sDAA4B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.25.0",
|
|
4
4
|
"description": "Cli инструмент для сборки и запуска приложений",
|
|
5
5
|
"files": [
|
|
6
6
|
"src",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@tinkoff/utils": "^2.1.3",
|
|
72
72
|
"@tinkoff/webpack-dedupe-plugin": "2.0.2",
|
|
73
73
|
"@tramvai/build": "4.1.0",
|
|
74
|
-
"@tramvai/react": "3.
|
|
74
|
+
"@tramvai/react": "3.25.0",
|
|
75
75
|
"@tramvai/tools-check-versions": "0.5.3",
|
|
76
76
|
"@tramvai/tools-migrate": "0.7.3",
|
|
77
77
|
"ajv": "^8.12.0",
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
"less": "^3.13.1",
|
|
120
120
|
"less-loader": "^8.1.1",
|
|
121
121
|
"lightning-pool": "^2.4.0",
|
|
122
|
+
"loader-utils": "^3.2.1",
|
|
122
123
|
"mdtable": "^0.3.1",
|
|
123
124
|
"mini-css-extract-plugin": "2.7.6",
|
|
124
125
|
"node-plop": "^0.26.0",
|
|
@@ -163,7 +164,7 @@
|
|
|
163
164
|
"webpack-bundle-analyzer": "^4.9.0",
|
|
164
165
|
"webpack-chain": "^6.5.1",
|
|
165
166
|
"webpack-dev-middleware": "^6.1.1",
|
|
166
|
-
"webpack-hot-middleware": "^2.
|
|
167
|
+
"webpack-hot-middleware": "^2.26.0",
|
|
167
168
|
"webpack-sources": "^3.2.3",
|
|
168
169
|
"webpack-stats-plugin": "^1.1.3",
|
|
169
170
|
"webpackbar": "^5.0.2",
|
|
@@ -82,7 +82,10 @@ export const createDevServer = ({
|
|
|
82
82
|
});
|
|
83
83
|
|
|
84
84
|
if (configManager.hotRefresh.enabled) {
|
|
85
|
-
app.use(
|
|
85
|
+
app.use(
|
|
86
|
+
getHotModulePrefix(configManager),
|
|
87
|
+
webpackHotMiddleware(compiler, { log: false, statsOptions: { cached: false } })
|
|
88
|
+
);
|
|
86
89
|
}
|
|
87
90
|
|
|
88
91
|
const rootDir = di.get(CONFIG_ROOT_DIR_TOKEN);
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type Sharp from 'sharp';
|
|
2
|
+
|
|
3
|
+
const BLUR_WIDTH = 10;
|
|
4
|
+
const BLUR_HEIGHT = 10;
|
|
5
|
+
|
|
6
|
+
export const getImageMiniatureDataURL = async (
|
|
7
|
+
content: Buffer,
|
|
8
|
+
width: number,
|
|
9
|
+
height: number,
|
|
10
|
+
extension: string
|
|
11
|
+
) => {
|
|
12
|
+
try {
|
|
13
|
+
const sharp: typeof Sharp = require('sharp');
|
|
14
|
+
|
|
15
|
+
const image = sharp(content, { sequentialRead: true });
|
|
16
|
+
// https://sharp.pixelplumbing.com/api-resize#resize
|
|
17
|
+
image.resize(BLUR_WIDTH, BLUR_HEIGHT, {
|
|
18
|
+
fit: 'inside',
|
|
19
|
+
});
|
|
20
|
+
if (extension === 'jpeg' || extension === 'jpg') {
|
|
21
|
+
image.jpeg({
|
|
22
|
+
progressive: true,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const optimizedBuffer = await image.toBuffer();
|
|
27
|
+
|
|
28
|
+
const dataURL = `data:image/${extension};base64,${optimizedBuffer.toString('base64')}`;
|
|
29
|
+
|
|
30
|
+
return dataURL;
|
|
31
|
+
} catch (e) {
|
|
32
|
+
console.error('image placeholder generation error: ', e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
@@ -1,15 +1,25 @@
|
|
|
1
1
|
import sizeOf from 'image-size';
|
|
2
2
|
import type { LoaderContext } from 'webpack';
|
|
3
|
+
import { interpolateName } from 'loader-utils';
|
|
4
|
+
import { getImageMiniatureDataURL } from './getImageMiniatureURL';
|
|
3
5
|
|
|
4
6
|
/**
|
|
5
7
|
* Reuse file-loader logic, but return a object with src and size of image
|
|
6
8
|
*/
|
|
7
|
-
export default function (this: LoaderContext<{}>, content:
|
|
9
|
+
export default async function (this: LoaderContext<{}>, content: Buffer) {
|
|
8
10
|
const result = require('file-loader').call(this, content);
|
|
9
|
-
|
|
10
11
|
const dimensions = sizeOf(this.resourcePath);
|
|
12
|
+
const options = this.getOptions();
|
|
13
|
+
|
|
14
|
+
const extension = interpolateName(this, '[ext]', options);
|
|
15
|
+
|
|
16
|
+
const dataURL = await getImageMiniatureDataURL(
|
|
17
|
+
content,
|
|
18
|
+
dimensions.width,
|
|
19
|
+
dimensions.height,
|
|
20
|
+
extension
|
|
21
|
+
);
|
|
11
22
|
|
|
12
|
-
// @todo: image blur placeholder in Base64, sharp or imagemin or jimp?
|
|
13
23
|
return result.replace(
|
|
14
24
|
/^export default (__webpack_public_path__ \+ .+);$/,
|
|
15
25
|
`const path = $1;
|
|
@@ -20,6 +30,7 @@ export const image = {
|
|
|
20
30
|
src: $1,
|
|
21
31
|
width: ${JSON.stringify(dimensions.width)},
|
|
22
32
|
height: ${JSON.stringify(dimensions.height)},
|
|
33
|
+
blurDataURL: ${JSON.stringify(dataURL)},
|
|
23
34
|
};`
|
|
24
35
|
);
|
|
25
36
|
}
|