You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.1 KiB
60 lines
2.1 KiB
|
3 years ago
|
import path from 'path';
|
||
|
|
import replace from '@rollup/plugin-replace';
|
||
|
|
import resolve from '@rollup/plugin-node-resolve';
|
||
|
|
import commonjs from '@rollup/plugin-commonjs';
|
||
|
|
import unassert from 'rollup-plugin-unassert';
|
||
|
|
import json from '@rollup/plugin-json';
|
||
|
|
import {flow} from '../../build/rollup_plugins.js';
|
||
|
|
|
||
|
|
// Build es modules?
|
||
|
|
const esm = 'esm' in process.env;
|
||
|
|
|
||
|
|
import {fileURLToPath} from 'url';
|
||
|
|
const __dirname = fileURLToPath(new URL('.', import.meta.url));
|
||
|
|
|
||
|
|
const config = [{
|
||
|
|
input: `${__dirname}/style-spec.js`,
|
||
|
|
output: {
|
||
|
|
name: 'mapboxGlStyleSpecification',
|
||
|
|
file: `${__dirname}/dist/${esm ? 'index.es.js' : 'index.cjs'}`,
|
||
|
|
format: esm ? 'esm' : 'umd',
|
||
|
|
sourcemap: true
|
||
|
|
},
|
||
|
|
plugins: [
|
||
|
|
{
|
||
|
|
name: 'dep-checker',
|
||
|
|
resolveId(source, importer) {
|
||
|
|
// Some users reference modules within style-spec package directly, instead of the bundle
|
||
|
|
// This means that files within the style-spec package should NOT import files from the parent mapbox-gl-js tree.
|
||
|
|
// This check will cause the build to fail on CI allowing these issues to be caught.
|
||
|
|
if (importer && !importer.includes('node_modules')) {
|
||
|
|
const resolvedPath = path.join(importer, source);
|
||
|
|
const fromRoot = path.relative(__dirname, resolvedPath);
|
||
|
|
if (fromRoot.length > 2 && fromRoot.slice(0, 2) === '..') {
|
||
|
|
throw new Error(`Module ${importer} imports ${source} from outside the style-spec package root directory.`);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
return null;
|
||
|
|
}
|
||
|
|
},
|
||
|
|
// https://github.com/zaach/jison/issues/351
|
||
|
|
replace({
|
||
|
|
include: /\/jsonlint-lines-primitives\/lib\/jsonlint.js/,
|
||
|
|
delimiters: ['', ''],
|
||
|
|
values: {
|
||
|
|
'_token_stack:': ''
|
||
|
|
}
|
||
|
|
}),
|
||
|
|
flow(),
|
||
|
|
json(),
|
||
|
|
unassert(),
|
||
|
|
resolve({
|
||
|
|
browser: true,
|
||
|
|
preferBuiltins: false
|
||
|
|
}),
|
||
|
|
commonjs()
|
||
|
|
]
|
||
|
|
}];
|
||
|
|
export default config;
|