-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgulpfile.js
More file actions
88 lines (74 loc) · 2.65 KB
/
gulpfile.js
File metadata and controls
88 lines (74 loc) · 2.65 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import gulp from 'gulp'
import path from 'node:path'
import fs from 'node:fs'
import log from 'fancy-log'
import ForwardReference from 'undertaker-forward-reference'
import dotenv from 'dotenv'
import gulpPlugins from 'gulp-load-plugins'
import notifier from 'node-notifier'
import stripAnsi from 'strip-ansi'
import { fileURLToPath } from 'node:url'
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// local .env file, overriding any global env variables
let parentEnvPath = path.join('..', '.env')
let envPath = fs.existsSync('.env') ? '.env' : (fs.existsSync(parentEnvPath) ? parentEnvPath : null)
if (envPath) {
let result = dotenv.config({ path: envPath })
log.warn(`Loading ENV variables from ${path.join(process.cwd(), envPath)}`)
for (let k in result.parsed) {
process.env[k] = result.parsed[k]
}
}
// development .env file, overriding any global env variables, or repo/plugin specific variables
let devEnv = path.join(__dirname, '.env')
if (fs.existsSync(devEnv)) {
let result = dotenv.config({path: devEnv})
log.warn('LOADING DEVELOPMENT ENV VARIABLES FROM ' + devEnv)
for (let k in result.parsed) {
process.env[k] = result.parsed[k]
}
}
// enable forward-referencing tasks, see https://github.com/gulpjs/gulp/issues/1028
gulp.registry(ForwardReference())
// @link https://github.com/jackfranklin/gulp-load-plugins/issues/141#issuecomment-2373391177
let plugins = gulpPlugins({
config: path.resolve(__dirname, 'package.json')
})
// show notification on task errors
let loggedErrors = []
gulp.on('error', (event) => {
if (loggedErrors.indexOf(event.error) === -1) {
notifier.notify({
title: `Error running task ${event.name}`,
message: stripAnsi(event.error.toString()),
sound: 'Frog'
})
// ensure the same error is only displayed once
loggedErrors.push(event.error)
}
})
/************** Task Exports */
export * from './tasks/build.js'
export * from './tasks/bump.js'
export * from './tasks/bundle.js'
export * from './tasks/clean.js'
export * from './tasks/compile.js'
export * from './tasks/config.js'
export * from './tasks/copy.js'
export * from './tasks/decaffeinate.js'
export * from './tasks/deploy.js'
export * from './tasks/github.js'
export * from './tasks/imagemin.js'
export * from './tasks/lint.js'
export * from './tasks/makepot.js'
export * from './tasks/prerelease.js'
export * from './tasks/prompt.js'
export * from './tasks/scripts.js'
export * from './tasks/shell.js'
export * from './tasks/styles.js'
export * from './tasks/upfw.js'
export * from './tasks/validate.js'
export * from './tasks/watch.js'
export * from './tasks/wc.js'
export * from './tasks/zip.js'