linner-hc 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +2 -0
- data/.travis.yml +3 -0
- data/CHANGELOG +129 -0
- data/Gemfile +14 -0
- data/LICENSE +22 -0
- data/README.md +74 -0
- data/Rakefile +8 -0
- data/bin/linner +11 -0
- data/docs/commands.md +29 -0
- data/docs/config.md +192 -0
- data/lib/linner.rb +261 -0
- data/lib/linner/archive.rb +53 -0
- data/lib/linner/asset.rb +102 -0
- data/lib/linner/bundler.rb +85 -0
- data/lib/linner/cache.rb +19 -0
- data/lib/linner/command.rb +133 -0
- data/lib/linner/compressor.rb +17 -0
- data/lib/linner/environment.rb +76 -0
- data/lib/linner/helper.rb +39 -0
- data/lib/linner/notifier.rb +24 -0
- data/lib/linner/reactor.rb +87 -0
- data/lib/linner/sprite.rb +127 -0
- data/lib/linner/template.rb +77 -0
- data/lib/linner/templates/app/images/.gitkeep +0 -0
- data/lib/linner/templates/app/images/logo.png +0 -0
- data/lib/linner/templates/app/scripts/app.coffee +3 -0
- data/lib/linner/templates/app/styles/app.scss +1 -0
- data/lib/linner/templates/app/templates/welcome.hbs +1 -0
- data/lib/linner/templates/app/views/index.html +21 -0
- data/lib/linner/templates/bin/server +3 -0
- data/lib/linner/templates/config.yml +54 -0
- data/lib/linner/templates/public/.gitkeep +1 -0
- data/lib/linner/templates/test/.gitkeep +0 -0
- data/lib/linner/templates/vendor/.gitkeep +1 -0
- data/lib/linner/version.rb +3 -0
- data/lib/linner/wrapper.rb +39 -0
- data/linner.gemspec +35 -0
- data/linner.gemspec.bak +34 -0
- data/spec/fixtures/app.js +1 -0
- data/spec/fixtures/config.yml +30 -0
- data/spec/linner/asset_spec.rb +33 -0
- data/spec/linner/bundler_spec.rb +26 -0
- data/spec/linner/environment_spec.rb +22 -0
- data/spec/linner/helper_spec.rb +26 -0
- data/spec/linner/sprites_spec.rb +23 -0
- data/spec/linner/template_spec.rb +16 -0
- data/spec/linner/wrapper_spec.rb +20 -0
- data/spec/spec_helper.rb +11 -0
- data/vendor/config.default.yml +13 -0
- data/vendor/livereload.js +1055 -0
- data/vendor/require_definition.js +60 -0
- metadata +289 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 384e3cd98fa686c846ada7147303cf9018a58d11
|
4
|
+
data.tar.gz: 0047e7c8a86c3c7a562413d7c46fc58d5a8d9e3e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 637d2f731536872a2dd9233b49938332ca202fc5d3b62b2901ea8293b60d3dc6e5593390e1403e5edda81c215fdcc73b3c1313e01eed463864cc88fbabeeb8a1
|
7
|
+
data.tar.gz: ca4d4ef325d82fab42452de04a9cf1396563786bbf8b909eee0fb379154bef5275512b07788a60e46d8cfb41cbf96d63f29fa69057955f8d0f4140eef9d29b2f
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/CHANGELOG
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
v0.11.1
|
2
|
+
- bump babel version to v0.7
|
3
|
+
- return non-zero code when build failed
|
4
|
+
|
5
|
+
v0.11.0
|
6
|
+
- supports `es6` and react `jsx` by babel
|
7
|
+
|
8
|
+
v0.10.0
|
9
|
+
- introducing new directive `compile` and `context` to compile files
|
10
|
+
|
11
|
+
v0.9.1
|
12
|
+
- add .yml .yaml and .txt to Tilt templates
|
13
|
+
|
14
|
+
v0.9.0
|
15
|
+
- introducing environment for different environments
|
16
|
+
|
17
|
+
v0.8.7
|
18
|
+
- support CDN in revision plugin
|
19
|
+
|
20
|
+
v0.8.6
|
21
|
+
- always use binary mode on windows
|
22
|
+
|
23
|
+
v0.8.5
|
24
|
+
- fix a windows mime-type bug
|
25
|
+
|
26
|
+
v0.8.4
|
27
|
+
- fix the vendor path for bundles
|
28
|
+
- fix the sprite url config, now it's working again
|
29
|
+
|
30
|
+
v0.8.3
|
31
|
+
- fix a windows md5sum bug cause it calculate in text mode by default
|
32
|
+
|
33
|
+
v0.8.2
|
34
|
+
- fix a gzip mime-type bug in linux
|
35
|
+
|
36
|
+
v0.8.1
|
37
|
+
- `tar` now sub prefix with envrionment paths
|
38
|
+
|
39
|
+
v0.8.0
|
40
|
+
- updated all deps
|
41
|
+
- use rspec3 to replace the old test code
|
42
|
+
- bundles now support tar.gz file
|
43
|
+
- add a new directive `tar` to produce tar file
|
44
|
+
- remove the old default config entity `paths`, should always have `paths` in groups
|
45
|
+
|
46
|
+
v0.7.3
|
47
|
+
- fix a merge bug from the latest version
|
48
|
+
|
49
|
+
v0.7.2
|
50
|
+
- add a unstrict mode by default to replace the revision, change the original one to strict mode, use `-s` to trigger.
|
51
|
+
|
52
|
+
v0.7.1
|
53
|
+
- prevent multiple instance running error
|
54
|
+
|
55
|
+
v0.7.0
|
56
|
+
- lock the sass version to 3.2.19, cause compass not works perfectly with it
|
57
|
+
- remove Hpricot, use plain regex to support revision
|
58
|
+
- `revision` now is a hash, support `prefix`, move the `manifest` into `revision`, revision now has a `files` key
|
59
|
+
|
60
|
+
v0.6.7
|
61
|
+
- bypass a windows platform expand_path bug in ruby v2.0.0
|
62
|
+
|
63
|
+
v0.6.6
|
64
|
+
- lock the gem http to v0.5.0 and reel to 0.4.0
|
65
|
+
|
66
|
+
v0.6.5
|
67
|
+
- upgrade uglifier to 2.5.0 cause uglifier 2.2.0 has IE 8 compatibility issues
|
68
|
+
- upgrade handlebars.rb to 0.1.2 cause handlebars version updated to 1.3.0
|
69
|
+
|
70
|
+
v0.6.4
|
71
|
+
- copy task now support render and compress
|
72
|
+
- fix cache problem when same asset in different linner task
|
73
|
+
|
74
|
+
v0.6.3
|
75
|
+
- support sprite revision
|
76
|
+
|
77
|
+
v0.6.2
|
78
|
+
- fix bin-packing algo problem
|
79
|
+
- add auto reload environment support
|
80
|
+
- add native path bundle support
|
81
|
+
|
82
|
+
v0.6.1
|
83
|
+
- use `hpricot` to instead of `nokogiri`, because `nokogiri` has parse problem when `revision`
|
84
|
+
|
85
|
+
v0.6.0
|
86
|
+
- add sprites support
|
87
|
+
|
88
|
+
v0.5.1
|
89
|
+
- support handlebars partials. templates start with "_" will be treaded as partials/
|
90
|
+
|
91
|
+
v 0.5.0
|
92
|
+
- linner command now provides `check` and `install` commands to check and install vendor dependencies
|
93
|
+
|
94
|
+
v 0.4.6
|
95
|
+
- compat terminal-notifier with OS X mavericks
|
96
|
+
|
97
|
+
v 0.4.5
|
98
|
+
- bump reel version to 0.4.0
|
99
|
+
|
100
|
+
v 0.4.4
|
101
|
+
- glob pattern need to sort by alphabetically
|
102
|
+
|
103
|
+
v 0.4.3
|
104
|
+
- fix the last `/` in `logical_path`
|
105
|
+
- multiple revision file support
|
106
|
+
|
107
|
+
v 0.4.2
|
108
|
+
- use `sleep` to instead of `Process.wait`
|
109
|
+
|
110
|
+
v 0.4.1
|
111
|
+
- `manifest.yml` support
|
112
|
+
- lots of badges support
|
113
|
+
|
114
|
+
v 0.4.0
|
115
|
+
- revision support
|
116
|
+
- fix memory leak in `cache_miss?`
|
117
|
+
- quit `fsevent` process when `ctrl + c` triggered
|
118
|
+
|
119
|
+
v 0.3.2
|
120
|
+
- fix Celluiod logger bug
|
121
|
+
- suggest windows user to use jruby instead
|
122
|
+
|
123
|
+
v 0.3.1
|
124
|
+
- add `livereload` support
|
125
|
+
|
126
|
+
v 0.3.0
|
127
|
+
- add `compass` support
|
128
|
+
- cache now supports `styles`
|
129
|
+
- more readable config file
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Saito
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Linner
|
2
|
+
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/linner.png)](http://badge.fury.io/rb/linner) [![Build Status](https://travis-ci.org/SaitoWu/linner.png)](https://travis-ci.org/SaitoWu/linner) [![Code Climate](https://codeclimate.com/repos/520fd56e56b10241f50f15a3/badges/e8beb45f55b5c1fa6142/gpa.png)](https://codeclimate.com/repos/520fd56e56b10241f50f15a3/feed) [![Dependency Status](https://gemnasium.com/SaitoWu/linner.png)](https://gemnasium.com/SaitoWu/linner)
|
4
|
+
|
5
|
+
Linner is a full-featured HTML5 application assembler.
|
6
|
+
|
7
|
+
![Linner](http://cl.ly/image/2J0d1C0D3S0E/logo.png)
|
8
|
+
|
9
|
+
#### Screencast
|
10
|
+
|
11
|
+
[![Screencast](http://cl.ly/image/000k0R400F30/Image%202014-04-29%20at%2010.20.12%20AM.png)](https://vimeo.com/71944672)
|
12
|
+
|
13
|
+
* Fast!
|
14
|
+
* Supports `Sass`, `Compass`, `Coffee`, `ECMAScript 6` and `React`.
|
15
|
+
* Supports OS X Lion and Mountaion Lion Notifications.
|
16
|
+
* Supports Modular Javascript, All your code will be wrapped by `cmd`.
|
17
|
+
* Supports `concat` code by `config file` not `directive processor`.
|
18
|
+
* Supports `copy` code from `src` to `dest`.
|
19
|
+
* Supports `precompile` Javascript Templates from `src` to `desc`.
|
20
|
+
* Supports `sprite` PNG images from `src` to `desc`.
|
21
|
+
* Supports `tar` files from `src` to `desc`.
|
22
|
+
* Supports Real-time `concat` by `$ linner watch`.
|
23
|
+
* Supports `compress` by `$ linner build`.
|
24
|
+
* Supports `LiveReload` with [LiveReload Chrome Extention](https://chrome.google.com/webstore/detail/livereload/jnihajbhpnppcggbcgedagnkighmdlei).
|
25
|
+
|
26
|
+
#### Documents
|
27
|
+
|
28
|
+
[https://github.com/SaitoWu/linner/tree/master/docs](https://github.com/SaitoWu/linner/tree/master/docs)
|
29
|
+
|
30
|
+
## Requirements
|
31
|
+
|
32
|
+
#### *nix
|
33
|
+
|
34
|
+
* Ruby 2.0
|
35
|
+
|
36
|
+
#### Windows
|
37
|
+
|
38
|
+
* Install [Ruby](http://rubyinstaller.org/downloads/) and [DevKit](http://rubyinstaller.org/downloads/)
|
39
|
+
* Install gem `wdm`
|
40
|
+
* Install Node.js to make Linner faster
|
41
|
+
|
42
|
+
## Installation
|
43
|
+
|
44
|
+
$ gem install linner
|
45
|
+
|
46
|
+
## Usage
|
47
|
+
|
48
|
+
#### Skeleton
|
49
|
+
|
50
|
+
$ linner new webapp && cd webapp
|
51
|
+
|
52
|
+
#### Watch
|
53
|
+
|
54
|
+
$ linner watch
|
55
|
+
|
56
|
+
#### Server
|
57
|
+
|
58
|
+
$ ./bin/server # or server if put "./bin" in your PATH
|
59
|
+
|
60
|
+
#### Build
|
61
|
+
|
62
|
+
$ linner build
|
63
|
+
|
64
|
+
#### Clean
|
65
|
+
|
66
|
+
$ linner clean
|
67
|
+
|
68
|
+
## Contributing
|
69
|
+
|
70
|
+
1. Fork it
|
71
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
72
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
73
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
74
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/bin/linner
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Encoding.default_external = Encoding::UTF_8
|
4
|
+
Encoding.default_internal = Encoding::UTF_8
|
5
|
+
|
6
|
+
# Trap interrupts to quit cleanly. See
|
7
|
+
# https://twitter.com/mitchellh/status/283014103189053442
|
8
|
+
Signal.trap("INT") { abort }
|
9
|
+
|
10
|
+
require File.dirname(__FILE__) + "/../lib/linner"
|
11
|
+
Linner::Command.start
|
data/docs/commands.md
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
# Command
|
2
|
+
|
3
|
+
## `linner new <path>`
|
4
|
+
|
5
|
+
Create new brunch project.
|
6
|
+
|
7
|
+
## `linner check`
|
8
|
+
|
9
|
+
Check linner bundles
|
10
|
+
|
11
|
+
## `linner install`
|
12
|
+
|
13
|
+
Install linner bundles
|
14
|
+
|
15
|
+
## `linner watch`
|
16
|
+
|
17
|
+
Watch linner directory and rebuild if something changed.
|
18
|
+
|
19
|
+
## `linner build`
|
20
|
+
|
21
|
+
Build and Minify a linner project.
|
22
|
+
|
23
|
+
## `linner clean`
|
24
|
+
|
25
|
+
Clean up linner public folder.
|
26
|
+
|
27
|
+
## `server`
|
28
|
+
|
29
|
+
Start up a server at port 3000.
|
data/docs/config.md
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
# Configuration file
|
2
|
+
|
3
|
+
Linner use `config.yml` file to config your application.
|
4
|
+
|
5
|
+
## `paths`
|
6
|
+
|
7
|
+
`paths` defines application paths, it contains `app`, `test`, `vendor` and `public` folders.
|
8
|
+
|
9
|
+
Default:
|
10
|
+
|
11
|
+
```yaml
|
12
|
+
paths:
|
13
|
+
app: "app"
|
14
|
+
test: "test"
|
15
|
+
vendor: "vendor"
|
16
|
+
public: "public"
|
17
|
+
```
|
18
|
+
|
19
|
+
`linner watch` command will watch `app`, `test` and `vendor` folders, and the builded file will be in `public` folder.
|
20
|
+
|
21
|
+
## `groups`
|
22
|
+
|
23
|
+
`groups` defines application groups, you can define any type of groups in it.
|
24
|
+
|
25
|
+
Default:
|
26
|
+
|
27
|
+
```yaml
|
28
|
+
groups:
|
29
|
+
scripts:
|
30
|
+
paths:
|
31
|
+
- "app/scripts"
|
32
|
+
order:
|
33
|
+
- "vendor/jquery-1.10.2.js"
|
34
|
+
- "..."
|
35
|
+
styles:
|
36
|
+
paths:
|
37
|
+
- "app/styles"
|
38
|
+
images:
|
39
|
+
paths:
|
40
|
+
- "app/images"
|
41
|
+
views:
|
42
|
+
paths:
|
43
|
+
- "app/views"
|
44
|
+
```
|
45
|
+
|
46
|
+
the default configuration defines four groups: `scripts`, `styles`, `images` and `views` group.
|
47
|
+
|
48
|
+
`paths` defines where can linner find this group's files, It's a `Array`.
|
49
|
+
|
50
|
+
`concat` defines concatenation of files in Linner. the `Dir.glob` of `value` will be concat to `key` file.
|
51
|
+
|
52
|
+
`copy` defines copy strategy of files in Linner. The `Dir.glob` of `value` will be copy to `key` folder.
|
53
|
+
|
54
|
+
`compile` defines compile strategy of files in Linner. The `Dir.glob` of `value` will be compile to `key` folder.
|
55
|
+
|
56
|
+
`precompile` defines precompile strategy of javascript templates for Linner. The `Dir.glob` of `value` will be concat to `key`.
|
57
|
+
|
58
|
+
`sprite` defines sprite strategy of images for Linner. The `Dir.glob` of `value` will be sprite to `key`.
|
59
|
+
|
60
|
+
`tar` defines archive strategy of files in Linner. The `Dir.glob` of `value` will be archive to `key` file.
|
61
|
+
|
62
|
+
`context` defines the context of the `compile` files, and the value will pass to the render function.
|
63
|
+
|
64
|
+
`order` defines the order of this group files, and It's very useful when you `concat` your files. for example:
|
65
|
+
|
66
|
+
```yaml
|
67
|
+
order:
|
68
|
+
- "vendor/jquery-1.10.2.js"
|
69
|
+
- "..."
|
70
|
+
- "vendor/underscore.js"
|
71
|
+
```
|
72
|
+
|
73
|
+
In the above example, if a group contains 5 files, `vendor/jquery-1.10.2.js` will be the first, and `vendor/underscore.js` will be the last file.
|
74
|
+
|
75
|
+
## `sprites`
|
76
|
+
|
77
|
+
`sprites` defines application sprite stategy. `sprites` support pseudo class of css, if your file's basename end with `_active`, the generated css will be `.active`. if your file's basename end with `_hover`, the generated css will be `:hover`, eg: `arrow_hover.png` will be `.selector-arrow:hover { ... }`
|
78
|
+
|
79
|
+
Example:
|
80
|
+
|
81
|
+
```yaml
|
82
|
+
sprites:
|
83
|
+
# sprite image output path
|
84
|
+
path: "/images/"
|
85
|
+
# css selector
|
86
|
+
selector: ".icon-"
|
87
|
+
```
|
88
|
+
|
89
|
+
## `modules`
|
90
|
+
|
91
|
+
`modules` defines application module strategy, The default wrapper is `cmd`.
|
92
|
+
|
93
|
+
Default:
|
94
|
+
|
95
|
+
```yaml
|
96
|
+
modules:
|
97
|
+
wrapper: "cmd"
|
98
|
+
ignored: "vendor/**/*"
|
99
|
+
definition: "scripts/app.js"
|
100
|
+
```
|
101
|
+
|
102
|
+
All of your code will be wrapped by `cmd`(Common Module Definition) except `ignored` glob pattern.
|
103
|
+
|
104
|
+
The definition file will prepend to `definition` field, which will join with `public` folder.
|
105
|
+
|
106
|
+
## `revision`
|
107
|
+
|
108
|
+
`revision` defines application layout page, which contains `link` and `script` tags.
|
109
|
+
|
110
|
+
Default:
|
111
|
+
|
112
|
+
```yaml
|
113
|
+
revision:
|
114
|
+
prefix: "/public"
|
115
|
+
cdn: http://assets.yoursite.com
|
116
|
+
manifest: "manifest.yml"
|
117
|
+
files:
|
118
|
+
- "index.html"
|
119
|
+
```
|
120
|
+
|
121
|
+
the `prefix` will join with revision hashes.
|
122
|
+
|
123
|
+
the `cdn` will also join with revision hashes, so it will be like `http://assets.yoursite.com/public/assets/scripts/app.js`.
|
124
|
+
|
125
|
+
the `manifest` will join with `public` folder, write a manifest file with the name.
|
126
|
+
|
127
|
+
`index.html` will join with `public` folder. So, by default when you `build` your application, the `public/index.html` file will be rewrote with revision.
|
128
|
+
|
129
|
+
|
130
|
+
|
131
|
+
If you don't need `revision` support, it can be `false`.
|
132
|
+
|
133
|
+
## `notification`
|
134
|
+
|
135
|
+
`notification` defines application error notification.
|
136
|
+
|
137
|
+
Default:
|
138
|
+
|
139
|
+
```yaml
|
140
|
+
notification: true
|
141
|
+
```
|
142
|
+
|
143
|
+
## `bundles`
|
144
|
+
|
145
|
+
`bundles` defines application's library dependencies, the dependencies will be copied to `vendor` folder.
|
146
|
+
|
147
|
+
For example:
|
148
|
+
|
149
|
+
```yaml
|
150
|
+
bundles:
|
151
|
+
jquery.js:
|
152
|
+
version: 1.10.2
|
153
|
+
url: http://code.jquery.com/jquery-1.10.2.js
|
154
|
+
underscore.js:
|
155
|
+
version: 1.5.2
|
156
|
+
url: https://raw.github.com/jashkenas/underscore/1.5.2/underscore.js
|
157
|
+
backbone.js:
|
158
|
+
version: 1.1.0
|
159
|
+
url: https://raw.github.com/jashkenas/backbone/1.1.0/backbone.js
|
160
|
+
handlebars.js:
|
161
|
+
version: 1.0.0
|
162
|
+
url: https://raw.github.com/wycats/handlebars.js/1.0.0/dist/handlebars.js
|
163
|
+
```
|
164
|
+
|
165
|
+
bundles also supports `tar.gz` file on the internet, you should give it a try.
|
166
|
+
|
167
|
+
When you use `tar.gz` file, the key of bundle can be a folder name, all the archived files will be decompression to the folder.
|
168
|
+
|
169
|
+
|
170
|
+
## `environments`
|
171
|
+
|
172
|
+
`environments` defines application's running environment config, the default environment is `development`.
|
173
|
+
|
174
|
+
If you use `linner build` to build your webapp, the environment would be `production`.
|
175
|
+
|
176
|
+
For example:
|
177
|
+
|
178
|
+
```yaml
|
179
|
+
environments:
|
180
|
+
staging:
|
181
|
+
revision:
|
182
|
+
cdn: http://staging.yoursite.com
|
183
|
+
production:
|
184
|
+
revision:
|
185
|
+
cdn: http://production.yoursite.com
|
186
|
+
```
|
187
|
+
|
188
|
+
You can use `linner build -e staging` to use the staging environment's variables.
|
189
|
+
|
190
|
+
When you use `linner watch` to watch the project, it's equals to `linner watch -e development`, and the `development` environment is the default environment, you don't need to write it.
|
191
|
+
|
192
|
+
When you use `linner build` to build the project, it's equals to `linner build -e produciton`.
|