Skip to content

Commit f651a58

Browse files
committed
feat(build): bring back to umd build
1 parent a9bdd89 commit f651a58

File tree

8 files changed

+520
-141
lines changed

8 files changed

+520
-141
lines changed

Utilities/build/umd-entry.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import '../../Sources/index.js';
2+
3+
export default globalThis.vtk;

Utilities/config/chainWebpack.js

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
module.exports = function chainWebpack(config) {
2+
config.module
3+
.rule('vtk-glsl')
4+
.test(/\.glsl$/i)
5+
.include.add(/vtk\.js[/\\]Sources/)
6+
.end()
7+
.use('shader-loader')
8+
.loader('shader-loader')
9+
.end();
10+
11+
config.module
12+
.rule('vtk-js')
13+
.test(/\.js$/i)
14+
.include.add(/vtk\.js[/\\]Sources/)
15+
.end()
16+
.use('babel-loader')
17+
.loader('babel-loader')
18+
.end();
19+
20+
config.module
21+
.rule('vtk-worker')
22+
.test(/\.worker\.js$/)
23+
.include.add(/vtk\.js[/\\]Sources/)
24+
.end()
25+
.use('worker-loader')
26+
.loader('worker-loader')
27+
.options({ inline: 'no-fallback' })
28+
.end();
29+
30+
config.module
31+
.rule('vtk-css')
32+
.test(/\.css$/)
33+
.exclude.add(/\.module\.css$/)
34+
.end()
35+
.include.add(/vtk\.js[/\\]Sources/)
36+
.end()
37+
.use('styles')
38+
.loader('style-loader')
39+
.loader('css-loader')
40+
.loader('postcss-loader')
41+
.end();
42+
43+
config.module
44+
.rule('vtk-svg')
45+
.test(/\.svg$/)
46+
.include.add(/vtk\.js[/\\]Sources/)
47+
.end()
48+
.use('raw-loader')
49+
.loader('raw-loader')
50+
.end();
51+
52+
config.module
53+
.rule('vtk-module-css')
54+
.test(/\.css$/)
55+
.include.add(/vtk\.js[/\\]Sources/)
56+
.add(/\.module\.css$/)
57+
.end()
58+
.use('styles')
59+
.loader('style-loader')
60+
.loader('css-loader')
61+
.options({
62+
modules: {
63+
localIdentName: '[name]-[local]_[sha512:hash:base64:5]',
64+
},
65+
})
66+
.loader('postcss-loader')
67+
.end();
68+
}

Utilities/config/dependency.js

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
const autoprefixer = require('autoprefixer');
2+
3+
module.exports = {
4+
webpack: {
5+
core: {
6+
rules: [
7+
{
8+
test: /\.glsl$/i,
9+
include: /vtk\.js[\/\\]Sources/,
10+
loader: 'shader-loader',
11+
},
12+
{
13+
test: /\.js$/,
14+
include: /vtk\.js[\/\\]Sources/,
15+
use: [
16+
{
17+
loader: 'babel-loader',
18+
options: {
19+
presets: ['@babel/preset-env'],
20+
},
21+
},
22+
],
23+
},
24+
{
25+
test: /\.worker\.js$/,
26+
include: /vtk\.js[\/\\]Sources/,
27+
use: [
28+
{
29+
loader: 'worker-loader',
30+
options: { inline: 'no-fallback' },
31+
},
32+
],
33+
},
34+
],
35+
},
36+
css: {
37+
rules: [
38+
{
39+
test: /\.css$/,
40+
exclude: /\.module\.css$/,
41+
use: [
42+
'style-loader',
43+
'css-loader',
44+
{
45+
loader: 'postcss-loader',
46+
options: {
47+
postcssOptions: {
48+
plugins: [autoprefixer('last 2 version', 'ie >= 10')],
49+
},
50+
},
51+
},
52+
],
53+
},
54+
{
55+
test: /\.css$/,
56+
include: /\.module\.css$/,
57+
use: [
58+
{ loader: 'style-loader' },
59+
{
60+
loader: 'css-loader',
61+
options: {
62+
modules: {
63+
localIdentName: '[name]-[local]_[sha512:hash:base64:5]',
64+
},
65+
},
66+
},
67+
{
68+
loader: 'postcss-loader',
69+
options: {
70+
postcssOptions: {
71+
plugins: [autoprefixer('last 2 version', 'ie >= 10')],
72+
},
73+
},
74+
},
75+
],
76+
},
77+
],
78+
},
79+
},
80+
};

Utilities/config/rules-examples.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
module.exports = [
2+
{ test: /\.(png|jpg)$/, type: 'asset' },
3+
{ test: /\.html$/, loader: 'html-loader' },
4+
{ test: /\.cjson$/, loader: 'hson-loader' },
5+
{ test: /\.hson$/, loader: 'hson-loader' },
6+
];

Utilities/config/rules-tests.js

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
module.exports = [
2+
{ test: /\.cjson$/, loader: 'hson-loader' },
3+
{
4+
test: /test[^\.]*\.(png|jpg)$/,
5+
type: 'asset',
6+
parser: {
7+
dataUrlCondition: {
8+
maxSize: 1024 * 1024,
9+
},
10+
},
11+
},
12+
{ test: /\.glsl$/i, loader: 'shader-loader' },
13+
{
14+
test: /\.worker\.js$/,
15+
use: [
16+
{ loader: 'worker-loader', options: { inline: 'no-fallback' } },
17+
],
18+
},
19+
{
20+
test: /\.css$/,
21+
exclude: /\.module\.css$/,
22+
use: [
23+
{ loader: 'style-loader' },
24+
{ loader: 'css-loader' },
25+
{ loader: 'postcss-loader' },
26+
],
27+
},
28+
{
29+
test: /\.module\.css$/,
30+
use: [
31+
{ loader: 'style-loader' },
32+
{
33+
loader: 'css-loader',
34+
options: {
35+
modules: {
36+
localIdentName: '[name]-[local]_[sha512:hash:base64:5]',
37+
},
38+
},
39+
},
40+
{ loader: 'postcss-loader' },
41+
],
42+
},
43+
{
44+
test: /\.svg$/,
45+
type: 'asset/source',
46+
},
47+
{
48+
test: /\.js$/,
49+
use: [
50+
{ loader: 'babel-loader' },
51+
{
52+
loader: 'string-replace-loader',
53+
options: {
54+
multiple: [
55+
{
56+
search: 'test.onlyIfWebGL',
57+
replace: process.env.NO_WEBGL ? 'test.skip' : 'test',
58+
flags: 'g',
59+
},
60+
{
61+
search: 'test.onlyIfWebGPU',
62+
replace: process.env.WEBGPU ? 'test' : 'test.skip',
63+
flags: 'g',
64+
},
65+
],
66+
},
67+
},
68+
],
69+
},
70+
];

Utilities/config/rules-vtk.js

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
module.exports = [
2+
{
3+
test: /\.glsl$/i,
4+
loader: 'shader-loader',
5+
},
6+
{
7+
test: /\.js$/,
8+
use: [
9+
{
10+
loader: 'babel-loader',
11+
options: {
12+
presets: [
13+
[
14+
'@babel/preset-env',
15+
{
16+
debug: false,
17+
useBuiltIns: false,
18+
},
19+
],
20+
],
21+
},
22+
},
23+
],
24+
},
25+
{
26+
test: /\.css$/,
27+
exclude: /\.module\.css$/,
28+
use: [
29+
{ loader: 'style-loader' },
30+
{ loader: 'css-loader' },
31+
{ loader: 'postcss-loader' },
32+
],
33+
},
34+
{
35+
test: /\.module\.css$/,
36+
use: [
37+
{ loader: 'style-loader' },
38+
{
39+
loader: 'css-loader',
40+
options: {
41+
modules: {
42+
localIdentName: '[name]-[local]_[sha512:hash:base64:5]',
43+
},
44+
},
45+
},
46+
{ loader: 'postcss-loader' },
47+
],
48+
},
49+
{
50+
test: /\.svg$/,
51+
type: 'asset/source',
52+
},
53+
{
54+
test: /\.worker\.js$/,
55+
use: [
56+
{ loader: 'worker-loader', options: { inline: 'no-fallback' } },
57+
],
58+
},
59+
];

package.json

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
"url": "https://github.com/kitware/vtk-js/issues"
2828
},
2929
"homepage": "https://github.com/kitware/vtk-js#readme",
30+
"main": "./dist/umd/vtk.js",
3031
"module": "./dist/esm/index.js",
3132
"dependencies": {
3233
"@types/webxr": "0.5.5",
@@ -99,9 +100,12 @@
99100
"example:https": "node ./Utilities/ExampleRunner/example-runner-cli.js --server-type https",
100101
"example:webgpu": "cross-env WEBGPU=1 NO_WEBGL=1 node ./Utilities/ExampleRunner/example-runner-cli.js --server-type https",
101102
"build:pre": "patch-package",
102-
"dev:esm": "vite build --watch",
103-
"build": "npm run build:pre && vite build",
104-
"build:release": "npm run lint && npm run build:pre && cross-env NOLINT=1 npm run build",
103+
"dev:esm": "cross-env BUILD_TARGET=esm vite build --watch",
104+
"dev:umd": "cross-env BUILD_TARGET=umd vite build --watch",
105+
"build": "npm run build:esm && npm run build:umd",
106+
"build:esm": "npm run build:pre && cross-env BUILD_TARGET=esm vite build",
107+
"build:umd": "npm run build:pre && cross-env BUILD_TARGET=umd vite build",
108+
"build:release": "npm run lint && cross-env NOLINT=1 npm run build",
105109
"release:create-packages": "node ./Utilities/ci/build-npm-package.js",
106110
"test": "vitest run",
107111
"test:watch": "vitest",
@@ -158,6 +162,12 @@
158162
"pkgRoot": "./dist/esm"
159163
}
160164
],
165+
[
166+
"@semantic-release/npm",
167+
{
168+
"pkgRoot": "./dist/umd"
169+
}
170+
],
161171
[
162172
"@semantic-release/github",
163173
{

0 commit comments

Comments
 (0)