mirror of https://github.com/status-im/fathom.git
add make dist task && separate assets build from binary build
This commit is contained in:
parent
2aac3d211f
commit
32693be2b0
|
@ -5,3 +5,6 @@ build
|
|||
fathom.db
|
||||
fathom
|
||||
!cmd/fathom
|
||||
|
||||
assets/build
|
||||
assets/dist
|
||||
|
|
27
Makefile
27
Makefile
|
@ -3,7 +3,7 @@ EXECUTABLE := fathom
|
|||
LDFLAGS += -extldflags "-static"
|
||||
MAIN_PKG := ./cmd/fathom
|
||||
PACKAGES ?= $(shell go list ./... | grep -v /vendor/)
|
||||
JS_SOURCES ?= $(shell find assets/. -name "*.js" -type f)
|
||||
JS_SOURCES ?= $(shell find assets/src/. -name "*.js" -type f)
|
||||
SOURCES ?= $(shell find . -name "*.go" -type f)
|
||||
ENV ?= $(shell export $(cat .env | xargs))
|
||||
|
||||
|
@ -12,19 +12,30 @@ all: build
|
|||
|
||||
.PHONY: install
|
||||
install: $(wildcard *.go)
|
||||
packr install -v -ldflags '-w $(LDFLAGS)' $(MAIN_PKG)
|
||||
$(GOPATH)/bin/packr install -v -ldflags '-w $(LDFLAGS)' $(MAIN_PKG)
|
||||
|
||||
.PHONY: build
|
||||
build: $(EXECUTABLE)
|
||||
|
||||
$(EXECUTABLE): $(SOURCES) $(JS_SOURCES)
|
||||
$(EXECUTABLE): $(SOURCES) assets/build $(GOPATH)/bin/packr
|
||||
$(GOPATH)/bin/packr build -v -ldflags '-w $(LDFLAGS)' -o $@ $(MAIN_PKG)
|
||||
|
||||
dist: assets/dist build/fathom-linux-amd64
|
||||
|
||||
build/fathom-linux-amd64: $(GOPATH)/bin/packr
|
||||
GOOS=linux GOARCH=amd64 $(GOPATH)/bin/packr build -v -ldflags '-w $(LDFLAGS)' -o $@ $(MAIN_PKG)
|
||||
|
||||
$(GOPATH)/bin/packr:
|
||||
GOBIN=$(GOPATH)/bin go get github.com/gobuffalo/packr/...
|
||||
|
||||
|
||||
assets/build: $(JS_SOURCES)
|
||||
if [ ! -d "node_modules" ]; then npm install; fi
|
||||
gulp
|
||||
|
||||
assets/dist: $(JS_SOURCES)
|
||||
if [ ! -d "node_modules" ]; then npm install; fi
|
||||
NODE_ENV=production gulp
|
||||
packr build -v -ldflags '-w $(LDFLAGS)' -o $@ $(MAIN_PKG)
|
||||
|
||||
.PHONY: docker
|
||||
docker:
|
||||
docker build -t metalmatze/ana:latest .
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
|
|
Before Width: | Height: | Size: 212 KiB After Width: | Height: | Size: 212 KiB |
Before Width: | Height: | Size: 998 B After Width: | Height: | Size: 998 B |
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
66
gulpfile.js
66
gulpfile.js
|
@ -12,65 +12,59 @@ const uglify = require('gulp-uglify')
|
|||
const pump = require('pump')
|
||||
const es = require('event-stream');
|
||||
const debug = process.env.NODE_ENV !== 'production';
|
||||
|
||||
let defaultTasks = [ 'browserify', 'sass', 'html', 'img' ] ;
|
||||
if( ! debug ) {
|
||||
defaultTasks.push( 'minify' );
|
||||
}
|
||||
|
||||
gulp.task('default', defaultTasks);
|
||||
|
||||
gulp.task('browserify', function () {
|
||||
let files = [
|
||||
'./assets/js/script.js',
|
||||
'./assets/js/tracker.js',
|
||||
'./assets/src/js/script.js',
|
||||
'./assets/src/js/tracker.js',
|
||||
];
|
||||
|
||||
var tasks = files.map(function(entry) {
|
||||
return browserify({
|
||||
entries: entry,
|
||||
debug: debug
|
||||
})
|
||||
.transform("babelify", {
|
||||
presets: ["es2015"],
|
||||
plugins: [
|
||||
"transform-decorators-legacy",
|
||||
["transform-react-jsx", { "pragma":"h" } ]
|
||||
]
|
||||
})
|
||||
.bundle()
|
||||
.pipe(source(entry.split('/').pop()))
|
||||
.pipe(gulp.dest('./build/js/'))
|
||||
});
|
||||
// create a merged stream
|
||||
return es.merge.apply(null, tasks);
|
||||
});
|
||||
let stream = browserify({
|
||||
entries: entry,
|
||||
debug: debug
|
||||
})
|
||||
.transform("babelify", {
|
||||
presets: ["es2015"],
|
||||
plugins: [
|
||||
"transform-decorators-legacy",
|
||||
["transform-react-jsx", { "pragma":"h" } ]
|
||||
]
|
||||
})
|
||||
.bundle()
|
||||
.pipe(source(entry.split('/').pop()))
|
||||
|
||||
gulp.task('minify', function(cb) {
|
||||
pump([
|
||||
gulp.src('./build/js/*.js'),
|
||||
uglify().on('error', gutil.log),
|
||||
gulp.dest('./build/js/')
|
||||
], cb)
|
||||
if(!debug) {
|
||||
stream.pipe(buffer()).pipe(uglify())
|
||||
}
|
||||
|
||||
return stream.pipe(gulp.dest(`./assets/build/js`))
|
||||
});
|
||||
|
||||
// create a merged stream
|
||||
return es.merge.apply(null, tasks);
|
||||
});
|
||||
|
||||
gulp.task('img', function() {
|
||||
return gulp.src('./assets/img/**/*')
|
||||
.pipe(gulp.dest('./build/img'))
|
||||
return gulp.src('./assets/src/img/**/*')
|
||||
.pipe(gulp.dest(`./assets/build/img`))
|
||||
});
|
||||
|
||||
gulp.task('html', function() {
|
||||
return gulp.src('./assets/**/*.html')
|
||||
.pipe(gulp.dest('./build'))
|
||||
return gulp.src('./assets/src/**/*.html')
|
||||
.pipe(gulp.dest(`./assets/build/`))
|
||||
});
|
||||
|
||||
gulp.task('sass', function () {
|
||||
var files = './assets/sass/[^_]*.scss';
|
||||
var files = './assets/src/sass/[^_]*.scss';
|
||||
return gulp.src(files)
|
||||
.pipe(sass())
|
||||
.on('error', gutil.log)
|
||||
.pipe(rename({ extname: '.css' }))
|
||||
.pipe(gulp.dest('./build/css'))
|
||||
.pipe(gulp.dest(`./assets/build/css`))
|
||||
});
|
||||
|
||||
gulp.task('watch', ['default'], function() {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -27,7 +27,7 @@ func (api *API) Routes() *mux.Router {
|
|||
r.Handle("/api/stats/referrers/pageviews", api.Authorize(HandlerFunc(api.GetReferrerStatsPageviewsHandler))).Methods(http.MethodGet)
|
||||
|
||||
// static assets & 404 handler
|
||||
box := packr.NewBox("./../../build")
|
||||
box := packr.NewBox("./../../assets/build")
|
||||
r.Path("/tracker.js").Handler(serveFileHandler(&box, "js/tracker.js"))
|
||||
r.Path("/").Handler(serveFileHandler(&box, "index.html"))
|
||||
r.PathPrefix("/assets").Handler(http.StripPrefix("/assets", http.FileServer(box)))
|
||||
|
|
Loading…
Reference in New Issue