Comments (3)
I just came up against this myself and learned that flatten=false
is the wrong way to go. You want to flatten the destination, but then use the rename
option to manipulate the destination! Take my config as an example.
I'm working on a shopify theme using shopify's theme kit and I want to track my custom liquid file changes separately from the rest of the theme, because dozens of other devs might mutate the theme without warning.
I need to move my liquid files from ./src/liquid/**/*
to shopify-theme/**/*
but I want the subdirectories of ./src/liquid/**
to be preserved.
To do this, I need to write a rename function:
import path from 'path'
// in plugins:
copy({
targets: [
{
src: "src/liquid/**/*",
dest: "shopify-theme",
rename: (_name, _extension, fullpath) => {
const keptParts = fullpath.split(path.sep).filter(dir => {
return dir !== "src" && dir !== "liquid"
})
return path.join(...keptParts)
}
}
],
verbose: true
})
In @macaw-germany's case I think the config might look more like this:
import path from 'path'
// in plugins:
copy({
targets: [
{
src: "folder2",
dest: "destfolder",
rename: (_name, _extension, fullpath) => {
const keptParts = fullpath.split(path.sep).filter(dir => {
return dir !== "folder2"
})
return path.join(...keptParts)
}
}
],
verbose: true
})
from rollup-plugin-copy.
Assuming your structure is always consistent, you can also simply use a fullpath.split(path.sep).slice(1)
instead of explicitly removing directories by name. Filtering by name will get rid of further nested directories, not just the first occurrences.
from rollup-plugin-copy.
same question!
from rollup-plugin-copy.
Related Issues (20)
- Negated patterns doesn't work correctly. HOT 1
- Has anyone been able to get this working in Sveltekit yet? HOT 3
- No error if target file does not exist
- The filter won't take effect when file transformed
- (copy plugin) Error: ENOENT: no such file or directory, chmod <filename> HOT 7
- copy occurs before generated bundle write when multi entry HOT 2
- unable to copy dot files from a directory ie. .htaccess HOT 1
- Symlinks HOT 2
- Move `@types/*` to `devDependencies`. HOT 3
- Create symlink instead of copy?
- Not working well in a Laravel project using Vite HOT 2
- The files in src cannot be obtained under the windows system HOT 3
- Rename does not let me alter the folder to which the file is written. HOT 1
- Please add your oss license text HOT 1
- `rename` option does not work in Rollup 4 HOT 1
- Compile typescript HOT 1
- Breaking dependency [email protected] HOT 3
- [Question] Is it possible to copy to a "hidden" folder?
- Filter Assets
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rollup-plugin-copy.