https://github.com/xn-sakina/dora
Dora is a deps precompile utils (esm to cjs)
https://github.com/xn-sakina/dora
dependencie-precompile dora
Last synced: 10 months ago
JSON representation
Dora is a deps precompile utils (esm to cjs)
- Host: GitHub
- URL: https://github.com/xn-sakina/dora
- Owner: xn-sakina
- License: mit
- Created: 2023-01-27T21:50:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-11-17T14:31:10.000Z (over 2 years ago)
- Last Synced: 2025-07-30T03:55:04.145Z (10 months ago)
- Topics: dependencie-precompile, dora
- Language: TypeScript
- Homepage:
- Size: 427 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# @xn-sakina/dora
Dora is a deps precompile utils
## Usage
```bash
# 1. install dep
pnpm i -D @xn-sakina/dora
# 2. create config file
# 3. precompile deps
pnpm dora build
```
### Config
#### Simple
```ts
// dora.config.ts
import { defineConfig } from '@xn-sakina/dora'
export default defineConfig({
deps: ['chalk'],
})
```
#### Complex
```ts
// dora.config.ts
import { defineConfig } from '@xn-sakina/dora'
import fs from 'fs'
import path from 'path'
export default defineConfig({
deps: [
{
name: 'sass-loader',
hooks: {
onRunTaskBefore(opts) {
const sassLoaderPath = require.resolve('sass-loader')
const utilsPath = path.join(path.dirname(sassLoaderPath), 'utils.js')
const originalContent = fs.readFileSync(utilsPath, 'utf-8')
fs.writeFileSync(
utilsPath,
originalContent.replace(
/require\.resolve\(["'](sass|node-sass)["']\)/g,
'eval("require").resolve("$1")'
),
'utf-8'
)
opts.externals = {
...opts.externals,
'node-sass': 'node-sass',
sass: 'sass',
fibers: 'fibers',
}
console.log('opts: ', opts)
},
},
},
],
})
```
## License
MIT