Skip to content

Commit e30ad4c

Browse files
committed
tasks/electron: fix build process with babel
1 parent fe715bc commit e30ad4c

File tree

3 files changed

+46
-3
lines changed

3 files changed

+46
-3
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ node_modules/gulp
2121
node_modules/gulp-asar
2222
node_modules/gulp-atom-shell
2323
node_modules/gulp-atom
24+
node_modules/gulp-babel
2425
node_modules/gulp-sass
2526
node_modules/gulp-util
2627
node_modules/gulp-watch

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
"field": "^1.0.1",
6161
"github-latest-release": "^0.1.1",
6262
"gulp": "^3.9.0",
63+
"gulp-babel": "^5.2.0",
6364
"gulp-sass": "^2.0.3",
6465
"gulp-util": "^3.0.4",
6566
"gulp-watch": "^3.0.0",

tasks/electron.js

Lines changed: 44 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var ospath = require('ospath')
55
var path = require('path')
66
var download = require('electron-download')
77
var gulp = require('gulp')
8+
var babel = require('gulp-babel')
89
var gutil = require('gulp-util')
910
var latest = require('github-latest-release')
1011
var extract = require('extract-zip')
@@ -77,7 +78,7 @@ gulp.task('electron:build:windows', _args.v ? [] : ['electron:build:prepare', 'e
7778
platform: 'win32',
7879
version: version,
7980
arch: 'x64',
80-
out: path.join(process.cwd(), '/release', pkg.name + '-win32-' + pkg.version),
81+
out: path.join(process.cwd(), '/release', pkg.name + '-windows-' + pkg.version),
8182
icon: './static/res/icon.ico',
8283
asar: true
8384
}
@@ -91,17 +92,57 @@ gulp.task('electron:build:windows', _args.v ? [] : ['electron:build:prepare', 'e
9192
})
9293
})
9394

94-
gulp.task('electron:build:prepare', function () {
95+
function createResolver (dir, base) {
96+
dir = path.relative(base, path.resolve(base, dir))
97+
return function resolve (mod, file) {
98+
if (mod.indexOf('#') !== 0) return mod
99+
var localModuleName = mod.split('#')[1]
100+
var modPath = path.join(dir, localModuleName)
101+
var d = path.dirname(file)
102+
var rel = path.relative(base, d)
103+
var localModule = path.relative(rel, modPath)
104+
105+
// hack
106+
if (!localModule.startsWith('.')) localModule = './' + localModule
107+
return localModule
108+
}
109+
}
110+
111+
var r = createResolver('./src/_local_modules', '/var/folders/f0/3bf0bqj54fl6b3g0__nymw_m0000gn/T/obsidian/')
112+
var m = r('#keydb', '/var/folders/f0/3bf0bqj54fl6b3g0__nymw_m0000gn/T/obsidian/src/ui/sidebar/sidebar.react.js')
113+
console.log(m)
114+
115+
var m2 = r('#flux', '/var/folders/f0/3bf0bqj54fl6b3g0__nymw_m0000gn/T/obsidian/src/startup.js')
116+
console.log(m2)
117+
118+
gulp.task('electron:build:prepare', function (done) {
95119
var buildDir = path.join(os.tmpdir(), pkg.name)
96120
fs.emptyDirSync(buildDir)
97-
// fs.emptyDirSync(path.join(process.cwd(), '/release'))
121+
console.log(buildDir)
122+
123+
var opts = require('../src/babel/options')
124+
delete opts.only
125+
delete opts.cache
126+
delete opts.extensions
127+
128+
opts.resolveModuleSource = createResolver('./src/_local_modules', buildDir)
98129

99130
fs.copySync('./package.json', path.join(buildDir, 'package.json'))
100131
fs.copySync('./src', path.join(buildDir, 'src'))
101132
fs.copySync('./static', path.join(buildDir, 'static'))
102133
Object.keys(pkg.dependencies).forEach(function (dep) {
103134
fs.copySync(path.join('./node_modules', dep), path.join(buildDir, 'node_modules', dep))
104135
})
136+
137+
gulp.src(path.join(buildDir, 'src') + '/**/*.js')
138+
.pipe(babel(opts))
139+
.pipe(gulp.dest(path.join(buildDir, 'src-babel')))
140+
.on('end', function () {
141+
fs.copy(path.join(buildDir, 'src-babel'), path.join(buildDir, 'src'), { clobber: true }, function (err) {
142+
if (err) console.error(err)
143+
fs.remove(path.join(buildDir, 'src-babel'), done)
144+
})
145+
})
105146
})
106147

107148
gulp.task('electron:download', _args.v ? [] : ['electron:latest'], function (done) {

0 commit comments

Comments
 (0)