UNPKG

4.55 kBMarkdownView Raw
1# express-mincer-spa
2
3easy generator of frontend application with express backend and mincer
4supported asset pipeline.
5
6[![npm version](https://badge.fury.io/js/express-mincer-spa.svg)](https://badge.fury.io/js/express-mincer-spa)
7[![Dependency Status](https://gemnasium.com/naxmefy/express-mincer-spa.svg)](https://gemnasium.com/naxmefy/express-mincer-spa)
8
9[![Build Status](https://travis-ci.org/naxmefy/express-mincer-spa.svg?branch=master)](https://travis-ci.org/naxmefy/express-mincer-spa)
10[![Coverage Status](https://coveralls.io/repos/github/naxmefy/express-mincer-spa/badge.svg?branch=master)](https://coveralls.io/github/naxmefy/express-mincer-spa?branch=master)
11
12
13[![NPM](https://nodei.co/npm/express-mincer-spa.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/express-mincer-spa/)
14
15## installation
16
17```
18$ npm install --global express-mincer-spa
19```
20
21## usage
22
23Generate new application
24
25```
26$ ems new my-spa-application
27```
28
29Start application
30
31```
32$ ems start my-spa-application
33
34// or
35
36$ node my-spa-application
37
38// or
39
40$ cd my-spa-application
41$ node index.js
42```
43
44Precompile assets
45
46```
47$ ems precompile
48```
49
50## Main File
51
52```JavaScript
53var expressMincerSpa = require('..');
54var app = module.exports = expressMincerSpa(__dirname, {
55 precompile: {
56 files: [
57 // DEFINE HERE FILES U WANNA PRECOMPILE
58 'app.css',
59 'app.js'
60 ]
61 }
62});
63
64if(!module.parent) {
65 app.start();
66}
67```
68
69## Default Options
70
71[see here in lib](https://github.com/naxmefy/express-mincer-spa/blob/master/lib/index.js#L117)
72
73```JavaScript
74var defaultOpts = {
75 port: process.env.PORT || 3000,
76 ip: process.env.IP || '',
77
78 host: function() {
79 return exports.host(this.ip, this.port);
80 },
81
82 engine: 'jade',
83 views: path.resolve(root, 'views'),
84 public: path.resolve(root, 'public'),
85 favicon: path.resolve(root, 'public', 'favicon.ico'),
86
87 middlewareForStaticPublic: [],
88 configureAssetPipeline: function(assetPipeline) {},
89 configureExpressBeforeMiddlewares: function(app) {},
90 configureExpress: function(app) {},
91
92 assets: {
93 mincer: Mincer,
94 root: root,
95 production: env === 'production',
96 mountPath: '/assets',
97 manifestFile: path.resolve(root, 'public', 'assets', 'manifest.json'),
98 paths: [],
99 scanDirectories: [
100 'assets'
101 ],
102 },
103
104 precompile: {
105 target: path.resolve(root, 'public', 'assets'),
106 images: true,
107 fonts: true,
108 files: [],
109 options: {}
110 },
111
112 livereload: {
113 active: env === 'development',
114 ip: process.env.LIVERELOAD_IP || 'localhost',
115 port: process.env.LIVERELOAD_PORT || 35729,
116 script: function () {
117 return util.format('//%s:%s/livereload.js', this.ip, this.port);
118 },
119 host: function() {
120 return exports.host(this.ip, this.port);
121 },
122 watch: [],
123 debug: env === 'development',
124 exts: [
125 'js',
126 'coffee',
127 'json',
128 'html',
129 'jade',
130 'ejs',
131 'css',
132 'styl',
133 'less',
134 'png',
135 'gif',
136 'jpg',
137 'svg',
138 'ico',
139 'eof',
140 'ttf',
141 'woff',
142 'woff2'
143 ]
144 }
145};
146```
147
148
149## Mincer
150
151* [Mincer API Documentation](http://nodeca.github.io/mincer)
152* [Github Repo](https://github.com/nodeca/mincer)
153
154## Connect Mincer
155
156* [Github Repo](https://github.com/clarkdave/connect-mincer)
157
158## example font fix
159
160e.g. Font-Awesome
161
162```Stylus
163//= require font-awesome/css/font-awesome.css
164
165@font-face {
166 font-family: 'FontAwesome';
167 src: url(asset_path('font-awesome/fonts/fontawesome-webfont.eot')+'?v=4.4.0');
168 src: url(asset_path('font-awesome/fonts/fontawesome-webfont.eot')+'?#iefix&v=4.4.0') format('embedded-opentype'),
169 url(asset_path('font-awesome/fonts/fontawesome-webfont.woff2')+'?v=4.4.0') format('woff2'),
170 url(asset_path('font-awesome/fonts/fontawesome-webfont.woff')+'?v=4.4.0') format('woff'),
171 url(asset_path('font-awesome/fonts/fontawesome-webfont.ttf')+'?v=4.4.0') format('truetype'),
172 url(asset_path('font-awesome/fonts/fontawesome-webfont.svg')+'?v=4.4.0#fontawesomeregular') format('svg');
173 font-weight: normal;
174 font-style: normal;
175}
176
177body
178 padding-top: 60px
179```
180
181## contributing
182
183* Found a bug? Create an issue!
184* Missing Feature? Create an issue or fork the repo, implement the feature and start an pull request.
185
186## license
187
188[MIT](https://github.com/naxmefy/express-mincer-spa/blob/master/LICENSE)