feat: restore commonjs bundle (#10984)

This commit is contained in:
Dan Onoshko 2022-12-16 03:11:11 +04:00 committed by GitHub
parent 185bb97d2e
commit 35fd6204b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 63 additions and 12 deletions

6
auto/auto.cjs Normal file
View File

@ -0,0 +1,6 @@
const exports = require('../dist/chart.cjs');
const {Chart, registerables} = exports;
Chart.register(...registerables);
module.exports = Object.assign(Chart, exports);

1
helpers/helpers.cjs Normal file
View File

@ -0,0 +1 @@
module.exports = require('../dist/helpers.cjs');

View File

@ -15,15 +15,18 @@
"exports": { "exports": {
".": { ".": {
"types": "./dist/types.d.ts", "types": "./dist/types.d.ts",
"import": "./dist/chart.js" "import": "./dist/chart.js",
"require": "./dist/chart.cjs"
}, },
"./auto": { "./auto": {
"types": "./auto/auto.d.ts", "types": "./auto/auto.d.ts",
"import": "./auto/auto.js" "import": "./auto/auto.js",
"require": "./auto/auto.cjs"
}, },
"./helpers": { "./helpers": {
"types": "./helpers/helpers.d.ts", "types": "./helpers/helpers.d.ts",
"import": "./helpers/helpers.js" "import": "./helpers/helpers.js",
"require": "./helpers/helpers.cjs"
} }
}, },
"types": "./dist/types.d.ts", "types": "./dist/types.d.ts",

View File

@ -152,6 +152,12 @@ importers:
dependencies: dependencies:
chart.js: link:../../.. chart.js: link:../../..
test/integration/node-commonjs:
specifiers:
chart.js: workspace:*
dependencies:
chart.js: link:../../..
test/integration/react-browser: test/integration/react-browser:
specifiers: specifiers:
'@babel/core': ^7.0.0 '@babel/core': ^7.0.0

View File

@ -77,5 +77,26 @@ export default [
indent: false, indent: false,
sourcemap: true, sourcemap: true,
}, },
},
// CommonJS builds
// dist/chart.js
// helpers/*.js
{
input: {
'dist/chart': 'src/index.ts',
'dist/helpers': 'src/helpers/index.ts'
},
plugins: plugins(),
external: _ => (/node_modules/).test(_),
output: {
dir: './',
chunkFileNames: 'dist/chunks/[name].cjs',
entryFileNames: '[name].cjs',
banner,
format: 'commonjs',
indent: false,
sourcemap: true,
},
} }
]; ];

View File

@ -0,0 +1,10 @@
{
"private": true,
"description": "chart.js should work in Node",
"scripts": {
"test": "node test.js"
},
"dependencies": {
"chart.js": "workspace:*"
}
}

View File

@ -0,0 +1,7 @@
const {Chart} = require('chart.js');
const {valueOrDefault} = require('chart.js/helpers');
Chart.register({
id: 'TEST_PLUGIN',
dummyValue: valueOrDefault(0, 1)
});

View File

@ -1,10 +1,7 @@
/* eslint-disable es/no-dynamic-import */ const {Chart} = require('chart.js');
Promise.all([ const {valueOrDefault} = require('chart.js/helpers');
import('chart.js'),
import('chart.js/helpers') Chart.register({
]).then(([{Chart}, {valueOrDefault}]) => { id: 'TEST_PLUGIN',
Chart.register({ dummyValue: valueOrDefault(0, 1)
id: 'TEST_PLUGIN',
dummyValue: valueOrDefault(0, 1)
});
}); });