Security News
Introducing the Socket Python SDK
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
@rollup-extras/plugin-copy
Advanced tools
Rollup plugin to copy assets during build.
Points:
assetFileNames
from rollup)Uses @niceties/logger
to log messages, can be configured through @niceties/logger
API.
Using npm:
npm install --save-dev @rollup-extras/plugin-copy
Using yarn:
yarn add --dev @rollup-extras/plugin-copy
Assuming you imported plugin using:
import copy from '@rollup-extras/plugin-copy';
Next examples are equivalent:
copy('assets/*')
copy(['assets/*'])
copy({ src: 'assets/*' })
copy({ src: ['assets/*'] })
copy([{ src: 'assets/*' }])
copy({ targets: 'assets/*' })
copy({ targets: ['assets/*'] })
copy({ targets: [{ src: 'assets/*' }] })
all of them will trigger a copy (through emitFile) of all files in assets in each output directory.
To copy files on every rebuild in watch mode use copyOnce
= false
:
copy({ src: 'assets/*', copyOnce: false })
// or
copy({ targets: ['assets/*'], copyOnce: false })
To stop triggering on changes in files use watch
= false
:
copy({ src: 'assets/*', watch: false })
// or
copy({ targets: ['assets/*'], watch: false })
To display more information in console use verbose
= true
:
copy({ src: 'assets/*', verbose: true })
// or
copy({ targets: ['assets/*'], verbose: true })
By default plugin uses glob-parent
to preserve directory structure of assets (relative to glob parent path). To flatten files in assets directory use flatten
= true
:
copy({ src: 'assets/*', flatten: true })
// or
copy({ targets: ['assets/*'], flatten: true })
To add hashes to file names use exactFileNames
= false
, tweak assetFileNames
option in rollup config if needed. Files with the same content will be deduplicated by rollup
in this mode.
copy({ src: 'assets/*', exactFileNames: false })
// or
copy({ targets: ['assets/*'], exactFileNames: false })
To work as output plugin use outputPlugin
= true
option (watch mode will be disabled because of rollup
limitations):
copy({ src: 'assets/*', outputPlugin: true })
// or
copy({ targets: ['assets/*'], outputPlugin: true })
To stop files being emitted through rollup pipeline use can use emitFiles
= false
. Please note that you need to specify dest
and it will not be relative to the output directory, also the file will not be copied into each output directory.
copy({ src: 'assets/*', dest: 'public', emitFiles: false })
// or
copy({ targets: [{ src: 'assets/*', dest: 'public' }], emitFiles: false })
dest
and exclude
Use the dest
option to put assets into the subfolder in the assets directory. As an example if we have assets
as a directory for assets and public
as an output directory and we specify 'dest'
= 'fonts'
assets will be copied into public/assets/fonts
preserving assets directory structure.
Use exclude
option to filter out files in assets (passed to ignore option of glob options). For example *.json
will filter out json files.
copy({ src: 'assets/*', dest: 'fonts', exclude: '*.json' })
// or
copy({ targets: [{ src: 'assets/*', dest: 'fonts', exclude: '*.json' }] })
type SingleTargetDesc = {
src: string | string[],
exclude?: string | string[],
dest?: string;
};
type MultipleTargetsDesc = string | string[] | SingleTargetDesc | SingleTargetDesc[];
type CopyPluginOptions = {
targets?: MultipleTargetsDesc,
pluginName?: string, // defaults to '@rollup-extras/plugin-copy'
copyOnce?: boolean, // true by default
watch?: boolean, // true by default
verbose?: boolean | 'list-filenames', // false by default
flattern?: boolean, // false by default
exactFileNames?: boolean, // true by default
outputPlugin?: boolean, // false by default
emitFiles?: boolean // true by default
} | MultipleTargetsDesc;
FAQs
Rollup plugin to copy assets during build.
The npm package @rollup-extras/plugin-copy receives a total of 374 weekly downloads. As such, @rollup-extras/plugin-copy popularity was classified as not popular.
We found that @rollup-extras/plugin-copy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
The initial version of the Socket Python SDK is now on PyPI, enabling developers to more easily interact with the Socket REST API in Python projects.
Security News
Floating dependency ranges in npm can introduce instability and security risks into your project by allowing unverified or incompatible versions to be installed automatically, leading to unpredictable behavior and potential conflicts.
Security News
A new Rust RFC proposes "Trusted Publishing" for Crates.io, introducing short-lived access tokens via OIDC to improve security and reduce risks associated with long-lived API tokens.