adminjs
Version:
Admin panel for apps written in node.js
46 lines • 1.69 kB
JavaScript
import path from 'path';
import * as url from 'url';
import { nodeResolve as resolve } from '@rollup/plugin-node-resolve';
import * as commonjs from '@rollup/plugin-commonjs';
import * as replace from '@rollup/plugin-replace';
import * as json from '@rollup/plugin-json';
import * as polyfills from 'rollup-plugin-polyfill-node';
import { minify } from 'rollup-plugin-esbuild-minify';
import { AssetBundler } from './utils/asset-bundler.js';
import { NODE_ENV } from './utils/constants.js';
const __dirname = url.fileURLToPath(new URL('.', import.meta.url));
const input = {
input: path.join(__dirname, '../../frontend/global-entry.js'),
plugins: [resolve({
extensions: AssetBundler.DEFAULT_EXTENSIONS,
mainFields: ['browser'],
preferBuiltins: false,
browser: true
}), replace.default({
'process.env.NODE_ENV': JSON.stringify(NODE_ENV),
'process.env.IS_BROWSER': 'true',
'process.stderr.fd': 'false',
preventAssignment: true,
'process.browser': true
}), json.default(), commonjs.default(), polyfills.default(), ...(NODE_ENV === 'production' ? [minify()] : [])]
};
const output = {
name: 'globals',
inlineDynamicImports: true,
file: path.join(__dirname, `../../frontend/assets/scripts/global-bundle.${NODE_ENV}.js`),
globals: {
react: 'React',
redux: 'Redux',
axios: 'axios',
punycode: 'punycode',
uuid: 'uuid',
'@adminjs/design-system/styled-components': 'styled',
'react-dom': 'ReactDOM',
'prop-types': 'PropTypes',
'react-redux': 'ReactRedux',
'react-router': 'ReactRouter',
'react-router-dom': 'ReactRouterDOM'
}
};
const bundler = new AssetBundler(input, output);
export default bundler;