Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
// during a single build.
hasTSChecked = true
const entryFile =
format === 'esm-bundler-runtime' ? `src/runtime.ts` : `src/index.ts`
return {
input: resolve(entryFile),
// Global and Browser ESM builds inlines everything so that they can be
// used alone.
external:
isGlobalBuild || isRawESMBuild
? []
: knownExternals.concat(Object.keys(pkg.dependencies || [])),
plugins: [
json({
namedExports: false
}),
tsPlugin,
createReplacePlugin(
isProductionBuild,
isBundlerESMBuild,
(isGlobalBuild || isRawESMBuild || isBundlerESMBuild) &&
!packageOptions.enableNonBrowserBranches,
isRuntimeCompileBuild
),
...plugins
],
output,
onwarn: (msg, warn) => {
if (!/Circular/.test(msg)) {
warn(msg)
// during a single build.
hasTSChecked = true;
return {
...config,
input: resolve(`src/index.ts`),
// Global and Browser ESM builds inlines everything so that they can be
// used alone.
external:
isGlobalBuild || isRawESMBuild
? config.external || []
: knownExternals.concat(Object.keys(pkg.dependencies || [])),
plugins: [
...(config.plugins || []),
json({
namedExports: false
}),
tsPlugin,
createReplacePlugin(
isProductionBuild,
isBundlerESMBuild,
(isGlobalBuild || isRawESMBuild) &&
!packageOptions.enableNonBrowserBranches,
isRuntimeCompileBuild
),
...plugins
],
output,
onwarn: (msg, warn) => {
if (!/Circular/.test(msg)) {
warn(msg);
output: { file: "dist/index.js", format: "cjs", sourcemap: true },
preserveSymlinks: false,
plugins: [
sourcemaps(),
replace({
delimiters: ["", ""],
values: {
// replace dynamic checks with if (true) since this is for node only.
// Allows rollup's dead code elimination to be more aggressive.
"if (isNode)": "if (true)",
"if (!isNode)": "if (false)"
}
}),
nodeResolve({ preferBuiltins: true }),
cjs(),
json()
]
};
if (test) {
// entry point is every test file
baseConfig.input = "dist-esm/test/*.spec.js";
baseConfig.plugins.unshift(multiEntry({ exports: false }));
// different output file
baseConfig.output.file = "test-dist/index.js";
// mark assert as external
baseConfig.external.push(
"assert",
"fs",
"path",
// path for originally local dependencies.
return !(dependency === input || isRelative(dependency) || isAbsolute(dependency))
},
acornInjectPlugins: [ acornJsx() ],
plugins: [
options.quiet ? null : progressPlugin({ watch: options.watch }),
options.exec ? advancedRun() : null,
typescriptResolvePlugin(),
rebasePlugin(),
cjsPlugin({
include: "node_modules/**",
extensions
}),
replacePlugin(variables),
jsonPlugin(),
babelPlugin({
// Rollup Setting: Prefer usage of a common library of helpers
runtimeHelpers: format !== "umd",
// We use envName to pass information about the build target and format to Babel
envName: env ? `${env}-${target}-${format}` : `${target}-${format}`,
// The Babel-Plugin is not using a pre-defined include, but builds up
// its include list from the default extensions of Babel-Core.
// Default Extensions: [".js", ".jsx", ".es6", ".es", ".mjs"]
// We add TypeScript extensions here as well to be able to post-process
// any TypeScript sources with Babel. This allows us for using presets
// like "react" and plugins like "fast-async" with TypeScript as well.
extensions,
// Do not transpile external code
// https://github.com/rollup/rollup-plugin-babel/issues/48#issuecomment-211025960
exclude: [ "node_modules/**", "**/*.json" ]
}),
external: depNames.concat(externalNodeBuiltins),
output: { file: "dist/index.js", format: "cjs", sourcemap: true },
preserveSymlinks: false,
plugins: [
sourcemaps(),
replace({
delimiters: ["", ""],
values: {
// replace dynamic checks with if (true) since this is for node only.
// Allows rollup's dead code elimination to be more aggressive.
"if (isNode)": "if (true)"
}
}),
nodeResolve({ preferBuiltins: true }),
cjs(),
json()
]
};
baseConfig.external.push("crypto", "path");
if (test) {
// entry point is every test file
baseConfig.input = "dist-esm/test/**/*.spec.js";
baseConfig.plugins.unshift(multiEntry({ exports: false }));
// different output file
baseConfig.output.file = "test-dist/index.js";
// mark assert as external
baseConfig.external.push("assert", "fs", "os", "tty", "child_process");
namedExports: {
chai: ["should"],
assert: ["equal", "deepEqual", "notEqual"]
}
}),
// rhea and rhea-promise use the Buffer global which requires
// injection to shim properly
inject({
modules: {
Buffer: ["buffer", "Buffer"],
process: "process"
}
}),
json()
]
};
if (test) {
baseConfig.input = "dist-esm/test/**/*.spec.js";
baseConfig.plugins.unshift(multiEntry({ exports: false }));
baseConfig.output.file = "test-browser/index.js";
// Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting
// the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also
// applies to test code, which causes all tests to be removed by tree-shaking.
baseConfig.treeshake = false;
} else if (production) {
baseConfig.plugins.push(terser());
}
external: depNames.concat(externalNodeBuiltins),
output: { file: "dist/index.js", format: "cjs", sourcemap: true },
preserveSymlinks: false,
plugins: [
sourcemaps(),
replace({
delimiters: ["", ""],
values: {
// replace dynamic checks with if (true) since this is for node only.
// Allows rollup's dead code elimination to be more aggressive.
"if (isNode)": "if (true)"
}
}),
nodeResolve({ preferBuiltins: true }),
cjs(),
json()
]
};
if (test) {
// entry point is every test file
baseConfig.input = "dist-esm/test/**/*.spec.js";
baseConfig.plugins.unshift(multiEntry({ exports: false }));
// different output file
baseConfig.output.file = "test-dist/index.js";
// mark assert as external
baseConfig.external.push();
// Disable tree-shaking of test code. In rollup-plugin-node-resolve@5.0.0, rollup started respecting
// the "sideEffects" field in package.json. Since our package.json sets "sideEffects=false", this also
}),
vue({ compileTemplate: true, css: false }),
alias({
entries: [
{
find: "@",
replacement: path.resolve("src")
}
]
}),
resolve({
browser: true,
preferBuiltins: false,
extensions: [".js", ".json", ".vue"]
}),
json(),
babel({
exclude: "node_modules/**",
sourceMap: true,
runtimeHelpers: true,
extensions: [".js", ".jsx", ".vue"]
}),
commonjs(),
filesize()
].concat(opts.plugins || []),
output: {
exports: "named",
file: opts.dest,
format: opts.format,
name: opts.moduleName || projectName,
globals: opts.globals
}
{
src: [`${options.rootDir}/native/*`],
dest: options.output,
},
],
copyOnce: true,
}),
alias(options),
url({
limit: 0,
fileName: '[dirname][name][extname]',
publicPath: '/',
sourceDir: path.resolve(options.cwd, options.rootDir),
include: ['**/*.svg', '**/*.png', '**/*.jpg', '**/*.jpeg', '**/*.gif'],
}),
json(),
resolve({
dedupe: [
'react',
'object-assign',
'prop-types',
'scheduler',
'react-reconciler',
],
extensions,
customResolveOptions: {
moduleDirectory: 'node_modules',
},
}),
commonjs({
include: /node_modules/,
namedExports,