@nowa/module-file
TypeScript icon, indicating that this package has built-in type declarations

0.3.2 • Public • Published

nowa-module-file

Module Config

export interface IBaseAction {
  type: 'copy' | 'move' | 'remove' | 'empty' | 'ensure';
  from: string;
}
export interface ISingleArgAction extends IBaseAction {
  type: 'remove' | 'empty' | 'ensure';
}
export interface IDoubleArgAction extends IBaseAction {
  type: 'copy' | 'move';
  to: string;
}
export type SingleAction = ISingleArgAction | IDoubleArgAction;

export type Config = ['file', SingleAction | SingleAction[]];

Usage

const config1 = ['file', { type: 'copy', from: './src/lib/', to: './dist/' }]; // copy files
const config2 = ['file', { type: 'copy', from: './src/lib/*.js', to: './dist/' }]; // support glob
const config3 = ['file', { type: 'empty', from: './build/' }]; // empty a folder
const config4 = ['file', { type: 'ensure', from: './build/assets/js/' }]; // ensure a path
const config5 = ['file', { type: 'move', from: './build/index.js', to: './build/entry.js' }]; // move (rename) a file
const config6 = ['file', [{ type: 'remove', from: './build/' }, { type: 'remove', from: './dist/' }]]; // multiple actions

Actions

module-file provides 5 kinds of actions

  • copy copy files or folders
  • move move files or folders
  • remove delete files or folders
  • empty empty folders
  • ensure ensure a path is valid, create any folder if needed

some actions can have to property.

Action.from

from can be a normal path or path with glob patterns, module-webpack uses globby to resolve them;

relative paths will be treated from project root (actually context in nowa2).

Action.to

to can only be used in action copy & move.

Caution, If you want to specify a folder, always add a slash / to the end. Or it will be treaded as a file

Example

if you have a project with a file file.js

└── file.js

with config { type: 'copy', from: './file.js', to: './dist' }, it will be

├── dist          ---- file, content same as file.js
└── file.js

with config { type: 'copy', from: './file.js', to: './dist/' }, it will be

├── dist          ---- folder
│   └── file.js   ---- file
└── file.js

Readme

Keywords

none

Package Sidebar

Install

npm i @nowa/module-file

Weekly Downloads

0

Version

0.3.2

License

MIT

Unpacked Size

12.4 kB

Total Files

6

Last publish

Collaborators

  • onbing
  • tommytroylin
  • gbk