bpm 1.0.0.beta.13 → 1.0.0.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.md +35 -1
- data/README.md +1 -1
- data/bin/bpm +18 -1
- data/bpm.gemspec +3 -3
- data/lib/bpm.rb +34 -1
- data/lib/bpm/cli/base.rb +32 -44
- data/lib/bpm/errors.rb +15 -3
- data/lib/bpm/execjs_ext.rb +99 -0
- data/lib/bpm/local.rb +1 -1
- data/lib/bpm/package.rb +53 -51
- data/lib/bpm/pipeline.rb +21 -14
- data/lib/bpm/pipeline/directive_processor.rb +9 -0
- data/lib/bpm/pipeline/generated_asset.rb +59 -13
- data/lib/bpm/pipeline/package_pipeline.rb +2 -2
- data/lib/bpm/pipeline/plugin_asset.rb +1 -1
- data/lib/bpm/pipeline/plugin_context.rb +12 -2
- data/lib/bpm/pipeline/plugin_processor.rb +27 -4
- data/lib/bpm/project.rb +171 -139
- data/lib/bpm/server.rb +14 -9
- data/lib/bpm/version.rb +1 -1
- data/man/{bpm-compile.1.ronn → bpm-rebuild.1.ronn} +0 -0
- data/man/bpm.1.ronn +112 -9
- data/spec/cli/add_spec.rb +15 -6
- data/spec/cli/init_spec.rb +7 -7
- data/spec/cli/pack_spec.rb +13 -8
- data/spec/cli/preview_spec.rb +10 -0
- data/spec/cli/rebuild_spec.rb +5 -5
- data/spec/cli/remove_spec.rb +1 -1
- data/spec/fixtures/gems/core-test-0.4.9.bpkg +0 -0
- data/spec/fixtures/packages/backbone/package.json +2 -2
- data/spec/fixtures/packages/core-test/package.json +1 -1
- data/spec/fixtures/projects/coffee/coffee.json +4 -4
- data/spec/fixtures/projects/coffee/{packages → vendor}/coffee-script/compiler.js +0 -0
- data/spec/fixtures/projects/coffee/{packages → vendor}/coffee-script/lib/main.js +0 -0
- data/spec/fixtures/projects/coffee/{packages → vendor}/coffee-script/package.json +0 -0
- data/spec/fixtures/projects/coffee/{packages/handlebars → vendor/handlebars-format}/format.js +0 -0
- data/spec/fixtures/projects/coffee/{packages/handlebars → vendor/handlebars-format}/lib/main.js +0 -0
- data/spec/fixtures/projects/coffee/{packages/handlebars → vendor/handlebars-format}/package.json +2 -2
- data/spec/fixtures/projects/coffee/vendor/handlebars/package.json +15 -0
- data/spec/fixtures/projects/coffee/vendor/spade-coffee/package.json +15 -0
- data/spec/fixtures/projects/coffee/vendor/spade-handlebars/package.json +15 -0
- data/spec/fixtures/projects/coffee/vendor/spade/lib/main.js +1 -0
- data/spec/fixtures/projects/coffee/{packages → vendor}/spade/package.json +0 -0
- data/spec/fixtures/projects/coffee/{packages → vendor}/spade/transport.js +0 -0
- data/spec/fixtures/projects/hello2/{packages → vendor}/a/lib/main.js +0 -0
- data/spec/fixtures/projects/hello2/{packages → vendor}/a/package.json +0 -0
- data/spec/fixtures/projects/hello2/{packages → vendor}/b/lib/main.js +0 -0
- data/spec/fixtures/projects/hello2/{packages → vendor}/b/package.json +0 -0
- data/spec/fixtures/projects/hello2/{packages → vendor}/c/lib/main.js +0 -0
- data/spec/fixtures/projects/hello2/{packages → vendor}/c/package.json +0 -0
- data/spec/fixtures/projects/hello_dev/{packages → vendor}/style_package/css/some_style.css +0 -0
- data/spec/fixtures/projects/hello_dev/{packages → vendor}/style_package/package.json +0 -0
- data/spec/fixtures/projects/hello_world/another/one.js +1 -0
- data/spec/fixtures/projects/hello_world/another/two.js +1 -0
- data/spec/fixtures/projects/hello_world/hello_world.json +6 -5
- data/spec/fixtures/projects/hello_world/lib2/something.js +1 -0
- data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/assets/dummy.txt +0 -0
- data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/css/sample_styles.css +0 -0
- data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/custom_dir/basic-module.js +0 -0
- data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/lib/main.js +0 -0
- data/spec/fixtures/projects/hello_world/{packages → vendor}/custom_package/package.json +1 -1
- data/spec/fixtures/projects/hello_world/vendor/prerelease_package/package.json +4 -0
- data/spec/fixtures/projects/init_app/new_project.json +3 -3
- data/spec/fixtures/projects/init_default/new_project.json +2 -2
- data/spec/fixtures/projects/minitest/minitest.json +1 -1
- data/spec/fixtures/projects/minitest/{packages → vendor}/uglyduck/lib/main.js +0 -0
- data/spec/fixtures/projects/minitest/{packages → vendor}/uglyduck/minifier/main.js +0 -0
- data/spec/fixtures/projects/minitest/{packages → vendor}/uglyduck/package.json +0 -0
- data/spec/fixtures/projects/minitrans/minitrans.json +1 -1
- data/spec/fixtures/projects/minitrans/{packages → vendor}/transport/lib/main.js +0 -0
- data/spec/fixtures/projects/minitrans/{packages → vendor}/transport/package.json +0 -0
- data/spec/fixtures/projects/minitrans/{packages → vendor}/transport/transports/wrapper.js +0 -0
- data/spec/fixtures/projects/minitrans/{packages → vendor}/uglyduck/lib/main.js +0 -0
- data/spec/fixtures/projects/minitrans/{packages → vendor}/uglyduck/minifier/main.js +0 -0
- data/spec/fixtures/projects/minitrans/{packages → vendor}/uglyduck/package.json +0 -0
- data/spec/fixtures/projects/transporter/{packages → vendor}/transport/lib/main.js +0 -0
- data/spec/fixtures/projects/transporter/{packages → vendor}/transport/package.json +0 -0
- data/spec/fixtures/projects/transporter/{packages → vendor}/transport/transports/wrapper.js +0 -0
- data/spec/package_pipeline_spec.rb +8 -5
- data/spec/package_spec.rb +31 -26
- data/spec/pipeline_spec.rb +72 -64
- data/spec/plugins/format_spec.rb +7 -7
- data/spec/project_spec.rb +6 -5
- data/spec/spec_helper.rb +5 -4
- data/spec/support/cli.rb +9 -7
- data/spec/support/env.rb +7 -4
- data/spec/support/path.rb +1 -0
- data/support/es5-shim.js +935 -0
- data/templates/init/project.json +2 -3
- metadata +112 -97
- data/lib/bpm/pipeline/transport_processor.rb +0 -34
- data/spec/fixtures/projects/coffee/packages/spade/lib/main.js +0 -1
- data/spec/fixtures/projects/hello_world/vendor/lib/something.js +0 -1
data/lib/bpm/server.rb
CHANGED
@@ -4,20 +4,27 @@ require 'sprockets'
|
|
4
4
|
module BPM
|
5
5
|
|
6
6
|
class Server < Rack::Server
|
7
|
-
|
8
|
-
def initialize(project, options=
|
7
|
+
|
8
|
+
def initialize(project, options={})
|
9
|
+
options = default_options.merge(options)
|
9
10
|
@project = project
|
10
|
-
@mode =
|
11
|
+
@mode = options[:mode] || :debug
|
11
12
|
super options
|
12
13
|
end
|
13
|
-
|
14
|
+
|
14
15
|
def self.start(project, options=nil)
|
15
16
|
new(project, options).start
|
16
17
|
end
|
17
|
-
|
18
|
+
|
19
|
+
def start
|
20
|
+
super
|
21
|
+
rescue Errno::EADDRINUSE
|
22
|
+
raise BPM::Error, "Port #{options[:Port]} is already in use. Please use --port to specify a different port."
|
23
|
+
end
|
24
|
+
|
18
25
|
attr_reader :project
|
19
26
|
attr_reader :mode
|
20
|
-
|
27
|
+
|
21
28
|
def app
|
22
29
|
cur_project = @project
|
23
30
|
cur_mode = @mode
|
@@ -26,13 +33,11 @@ module BPM
|
|
26
33
|
map '/assets' do
|
27
34
|
run BPM::Pipeline.new cur_project, cur_mode, true
|
28
35
|
end
|
29
|
-
|
36
|
+
|
30
37
|
map '/' do
|
31
38
|
run Rack::Directory.new cur_project.root_path
|
32
39
|
end
|
33
|
-
|
34
40
|
end.to_app
|
35
41
|
end
|
36
|
-
|
37
42
|
end
|
38
43
|
end
|
data/lib/bpm/version.rb
CHANGED
File without changes
|
data/man/bpm.1.ronn
CHANGED
@@ -7,18 +7,120 @@ bpm(1) -- browser package manager
|
|
7
7
|
|
8
8
|
## DESCRIPTION
|
9
9
|
|
10
|
-
|
10
|
+
bpm is a package manager for browser-based applications. It is based
|
11
|
+
loosely on npm (node package manager), but designed to handle all the
|
12
|
+
different types of assets and optimizations you will need for the web
|
13
|
+
including packaging and minifying JavaScript as well as handling CSS and
|
14
|
+
image assets.
|
11
15
|
|
12
|
-
|
13
|
-
|
14
|
-
|
16
|
+
You can use bpm both to manage the dependencies of an application you are
|
17
|
+
building and to publish libraries of code for others to use. This manual
|
18
|
+
page will explain to you how to use bpm both different ways.
|
15
19
|
|
16
|
-
|
17
|
-
bpm compile - rebuilds the project; uses any current dependencies
|
18
|
-
bpm preview - allows you to preview the files. creates any needed files
|
20
|
+
## GETTING STARTED (WITH AN EXISTING PROJECT)
|
19
21
|
|
22
|
+
The most common way to use bpm is to manage the dependencies of your
|
23
|
+
application. To configure bpm for an existing project, just cd into the project directory
|
24
|
+
and type:
|
20
25
|
|
21
|
-
|
26
|
+
bpm init
|
27
|
+
|
28
|
+
This will setup a new project JSON file as well as create an empty set of
|
29
|
+
asset files in the `assets` directory of your project. Inside of that
|
30
|
+
directory you will find two key files: `bpm_libs.js` and `bpm_styles.css`.
|
31
|
+
|
32
|
+
These files will contain the JavaScript and CSS styles for all of your
|
33
|
+
dependencies, respectively. Make sure you modify any HTML files to reference
|
34
|
+
these two files so they load. Typically you will want both files to load
|
35
|
+
before other JavaScript or CSS files in your page.
|
36
|
+
|
37
|
+
As you add dependencies, additional assets may appear in this directory,
|
38
|
+
including images.
|
39
|
+
|
40
|
+
Now that you have setup your project, you can start adding dependencies. See
|
41
|
+
(ADDING DEPENDENCIES) below.
|
42
|
+
|
43
|
+
## GETTING STARTED (WITH A NEW APP)
|
44
|
+
|
45
|
+
If you are starting a new project, you can also use bpm to create your new
|
46
|
+
project with:
|
47
|
+
|
48
|
+
bpm init [PROJECT_NAME]
|
49
|
+
|
50
|
+
This will create a new project with the name that you gave it based on the
|
51
|
+
HTML5 Boilerplate template.
|
52
|
+
|
53
|
+
Your new project will also contain an assets directory that contains
|
54
|
+
`bpm_libs.js` and `bpm_styles.css` files. These must be loaded in your HTML
|
55
|
+
file for your dependencies to load. The default index.html created by bpm
|
56
|
+
will already do this for you.
|
57
|
+
|
58
|
+
## ADDING AND REMOVING DEPENDENCIES
|
59
|
+
|
60
|
+
Once you have configured your application, you can add and remove dependencies using the `bpm add` and `bpm remove` commands. For example, to add jquery to
|
61
|
+
your project just type:
|
62
|
+
|
63
|
+
bpm add jquery
|
64
|
+
|
65
|
+
This will fetch the jquery package and any dependencies (if they exist) and
|
66
|
+
then rebuild the files in the `assets` directory. Once the add is complete
|
67
|
+
bpm should display the new total file sizes of the files it built. This
|
68
|
+
size represents the size after minification (if there is any) and gzipped.
|
69
|
+
|
70
|
+
For more information on adding dependencies see the `bpm-add` manual.
|
71
|
+
|
72
|
+
You can also remove dependencies by using the `bpm remove` command. Just name
|
73
|
+
the package you want to remove and all the assets will be rebuilt for you.
|
74
|
+
For example:
|
75
|
+
|
76
|
+
bpm remove jquery
|
77
|
+
|
78
|
+
Would remove jquery from your project (if it was already added). Calling
|
79
|
+
bpm remove with the same package multiple times has no effect.
|
80
|
+
|
81
|
+
For more information on remove dependencies see the `bpm-remove` manual.
|
82
|
+
|
83
|
+
## MANAGING YOUR APP ITSELF
|
84
|
+
|
85
|
+
In addition to handling dependencies, bpm can also be used to build your
|
86
|
+
actual app JavaScript and CSS. To do this, you just need to run:
|
87
|
+
|
88
|
+
bpm init --app
|
89
|
+
|
90
|
+
Note that when you create new projects with bpm, the app will already be
|
91
|
+
built.
|
92
|
+
|
93
|
+
The default configuration for this setup will build any JavaScript found in
|
94
|
+
a `lib` directory in the root of your project and any CSS found in a `css`
|
95
|
+
directory in the root of your project. You can change these settings by
|
96
|
+
modifying the project JSON.
|
97
|
+
|
98
|
+
## PREVIEWING
|
99
|
+
|
100
|
+
Sometimes while hacking on your app - especially if you are using BPM to
|
101
|
+
build the app itself, you will want to see your changes in the browser
|
102
|
+
without having to constantly rebuild your app. To do this you can use the
|
103
|
+
`bpm preview` command.
|
104
|
+
|
105
|
+
Run this command from the root of your project and it will start a server on
|
106
|
+
port 4020 that will simply load the files found in your project. Any of the
|
107
|
+
files found in the assets folder, however, will be automatically rebuilt from
|
108
|
+
your installed packages on demand. They will also be built in debug mode
|
109
|
+
which means you will be able to see code uniminified, making things
|
110
|
+
far easier to debug.
|
111
|
+
|
112
|
+
As an example, if you created a new app using bpm and then used bpm preview,
|
113
|
+
you could just visit:
|
114
|
+
|
115
|
+
http://localhost:4020/index.html
|
116
|
+
|
117
|
+
To actually load the app in your browser.
|
118
|
+
|
119
|
+
## REBUILDING
|
120
|
+
|
121
|
+
If you have modified your app and you are ready to release it, you may want
|
122
|
+
to do a new build in bpm to get the latest code. You can use the
|
123
|
+
`bpm rebuild` command for this.
|
22
124
|
|
23
125
|
## COPYRIGHT
|
24
126
|
|
@@ -26,6 +128,7 @@ bpm preview - allows you to preview the files. creates any needed files
|
|
26
128
|
|
27
129
|
## SEE ALSO
|
28
130
|
|
29
|
-
bpm-add(1) bpm-remove(1)
|
131
|
+
bpm-add(1) bpm-remove(1) bpm-rebuild(1) bpm-preview(1)
|
132
|
+
|
30
133
|
|
31
134
|
|
data/spec/cli/add_spec.rb
CHANGED
@@ -50,14 +50,14 @@ describe 'bpm add' do
|
|
50
50
|
output.should include("Added package 'coffee' (1.0.1.pre)")
|
51
51
|
output.should include("Added package 'jquery' (1.4.3)")
|
52
52
|
|
53
|
-
has_dependency 'coffee', '1.0.1.pre', '>= 0
|
53
|
+
has_dependency 'coffee', '1.0.1.pre', '>= 0.pre'
|
54
54
|
has_soft_dependency 'jquery', '1.4.3'
|
55
55
|
end
|
56
56
|
|
57
57
|
it "adds no packages when any are invalid" do
|
58
58
|
bpm "add", "jquery", "fake", :track_stderr => true
|
59
59
|
|
60
|
-
stderr.read.should
|
60
|
+
stderr.read.should include("Could not find eligible package for 'fake' (>= 0)")
|
61
61
|
|
62
62
|
no_dependency 'jquery'
|
63
63
|
no_dependency 'fake'
|
@@ -66,7 +66,7 @@ describe 'bpm add' do
|
|
66
66
|
it "fails when adding invalid package" do
|
67
67
|
bpm "add", "fake", :track_stderr => true
|
68
68
|
|
69
|
-
stderr.read.should
|
69
|
+
stderr.read.should include("Could not find eligible package for 'fake' (>= 0)")
|
70
70
|
no_dependency 'fake'
|
71
71
|
end
|
72
72
|
|
@@ -95,7 +95,6 @@ describe 'bpm add' do
|
|
95
95
|
wait
|
96
96
|
has_dependency 'rake', '0.8.6', '0.8.6' # precond
|
97
97
|
|
98
|
-
output = stdout.read
|
99
98
|
bpm 'add', 'rake'
|
100
99
|
wait
|
101
100
|
|
@@ -111,13 +110,13 @@ describe 'bpm add' do
|
|
111
110
|
wait
|
112
111
|
output = stdout.read
|
113
112
|
output.should include("Added package 'bundler' (1.1.pre)")
|
114
|
-
has_dependency 'bundler', '1.1.pre', '>= 0
|
113
|
+
has_dependency 'bundler', '1.1.pre', '>= 0.pre'
|
115
114
|
end
|
116
115
|
|
117
116
|
it "does not add the normal package when asking for a prerelease" do
|
118
117
|
bpm "add", "rake", "--pre", :track_stderr => true
|
119
118
|
wait
|
120
|
-
stderr.read.should
|
119
|
+
stderr.read.should include("Could not find eligible package for 'rake' (>= 0.pre)")
|
121
120
|
no_dependency 'rake'
|
122
121
|
end
|
123
122
|
|
@@ -154,6 +153,16 @@ describe 'bpm add' do
|
|
154
153
|
no_dependency 'custom_package'
|
155
154
|
end
|
156
155
|
|
156
|
+
it "should add local prerelease package" do
|
157
|
+
no_dependency 'prerelease_package'
|
158
|
+
|
159
|
+
bpm "add", "prerelease_package", "--pre"
|
160
|
+
output = stdout.read
|
161
|
+
|
162
|
+
output.should include("Using local package 'prerelease_package'")
|
163
|
+
has_dependency 'prerelease_package', '1.0.0.pre', '>= 0.pre'
|
164
|
+
end
|
165
|
+
|
157
166
|
it "should work with .bpkg file" do
|
158
167
|
FileUtils.cp fixtures('gems', "custom_generator-1.0.bpkg"), '.'
|
159
168
|
bpm "add", "custom_generator-1.0.bpkg" and wait
|
data/spec/cli/init_spec.rb
CHANGED
@@ -126,11 +126,11 @@ describe "bpm init on a non-existant directory" do
|
|
126
126
|
|
127
127
|
files.each do |file|
|
128
128
|
output.should =~ /create\s+#{file}$/
|
129
|
-
home("
|
129
|
+
home("BpmTest", *file.split('/')).should exist
|
130
130
|
end
|
131
131
|
|
132
132
|
generated_files.each do |file|
|
133
|
-
home('
|
133
|
+
home('BpmTest', *file.split('/')).should exist
|
134
134
|
end
|
135
135
|
end
|
136
136
|
|
@@ -140,7 +140,7 @@ describe "bpm init on a non-existant directory" do
|
|
140
140
|
home("DifferentLocation").should exist
|
141
141
|
home("DifferentLocation", "BpmTest.json").should exist
|
142
142
|
home("DifferentLocation", "DifferentLocation.json").should_not exist
|
143
|
-
home("
|
143
|
+
home("BpmTest").should_not exist
|
144
144
|
end
|
145
145
|
|
146
146
|
end
|
@@ -166,20 +166,20 @@ describe "bpm init on a non-existant directory" do
|
|
166
166
|
|
167
167
|
files.each do |file|
|
168
168
|
output.should =~ /create\s+#{file}$/
|
169
|
-
home("
|
169
|
+
home("BpmTest", file).should exist
|
170
170
|
end
|
171
171
|
end
|
172
172
|
|
173
173
|
it "should create custom app.js with explicit generator" do
|
174
174
|
bpm 'init', 'BpmTest', '--package=custom_generator' and wait
|
175
175
|
|
176
|
-
File.read(home("
|
176
|
+
File.read(home("BpmTest", "app.js")).should == "require('BpmTest/main.js')\n"
|
177
177
|
end
|
178
178
|
|
179
179
|
it "should create custom project.json without explicit generator" do
|
180
180
|
bpm 'init', 'BpmTest', '--package=core-test' and wait
|
181
181
|
|
182
|
-
File.read(home("
|
182
|
+
File.read(home("BpmTest", "BpmTest.json")).should =~ /"core-test": "0.4.9"/
|
183
183
|
end
|
184
184
|
|
185
185
|
end
|
@@ -196,7 +196,7 @@ describe "bpm init on a non-existant directory" do
|
|
196
196
|
it "should add package as a dependency even if it doesn't have custom generator" do
|
197
197
|
bpm 'init', 'BpmTest', '--package=jquery' and wait
|
198
198
|
|
199
|
-
File.read(home("
|
199
|
+
File.read(home("BpmTest", "BpmTest.json")).should =~ /"dependencies": {\n\s+"jquery": "1.4.3"\n\s+}/
|
200
200
|
end
|
201
201
|
|
202
202
|
end
|
data/spec/cli/pack_spec.rb
CHANGED
@@ -25,6 +25,16 @@ describe "bpm pack" do
|
|
25
25
|
package.spec.version.should == LibGems::Version.new("0.4.9")
|
26
26
|
package.spec.email.should == email
|
27
27
|
end
|
28
|
+
|
29
|
+
it "should not complain about different directories" do
|
30
|
+
FileUtils.cp_r package_fixture("core-test"), "custom-path"
|
31
|
+
cd "custom-path"
|
32
|
+
bpm "pack"
|
33
|
+
|
34
|
+
exit_status.should be_success
|
35
|
+
stdout.read.should include("Successfully built package: core-test-0.4.9.bpkg")
|
36
|
+
end
|
37
|
+
|
28
38
|
end
|
29
39
|
|
30
40
|
describe "without logging in" do
|
@@ -99,11 +109,6 @@ describe "bpm pack" do
|
|
99
109
|
exit_status.should be_success
|
100
110
|
end
|
101
111
|
|
102
|
-
it "implies the summary field" do
|
103
|
-
package = LibGems::Format.from_file_by_path("backbone-0.5.1.bpkg")
|
104
|
-
package.spec.summary.should == package.spec.description
|
105
|
-
end
|
106
|
-
|
107
112
|
it "gets name and version" do
|
108
113
|
package = LibGems::Format.from_file_by_path("backbone-0.5.1.bpkg")
|
109
114
|
package.spec.name.should == "backbone"
|
@@ -120,11 +125,11 @@ describe "bpm pack" do
|
|
120
125
|
describe "package with plugins" do
|
121
126
|
before do
|
122
127
|
goto_home
|
123
|
-
FileUtils.cp_r project_fixture('coffee', '
|
128
|
+
FileUtils.cp_r project_fixture('coffee', 'vendor'), '.'
|
124
129
|
end
|
125
130
|
|
126
131
|
it "should pack transports" do
|
127
|
-
cd home('
|
132
|
+
cd home('vendor', 'spade')
|
128
133
|
bpm "pack" and wait
|
129
134
|
puts stdout.read
|
130
135
|
exit_status.should be_success
|
@@ -137,4 +142,4 @@ describe "bpm pack" do
|
|
137
142
|
|
138
143
|
end
|
139
144
|
|
140
|
-
|
145
|
+
|
data/spec/cli/rebuild_spec.rb
CHANGED
@@ -52,7 +52,7 @@ EOF
|
|
52
52
|
|
53
53
|
def test_include(does_include, build_file, *source_file)
|
54
54
|
contents_path = home('hello_dev', 'assets', build_file)
|
55
|
-
expected_path = home(
|
55
|
+
expected_path = home(*source_file)
|
56
56
|
|
57
57
|
if does_include
|
58
58
|
File.read(contents_path).should include(File.read(expected_path))
|
@@ -66,20 +66,20 @@ EOF
|
|
66
66
|
|
67
67
|
js_reg = [
|
68
68
|
# fetch regular dependency
|
69
|
-
%w(.bpm
|
69
|
+
%w(.bpm gems spade-0.5.0 lib main.js)
|
70
70
|
]
|
71
71
|
|
72
72
|
js_dev = [
|
73
73
|
# fetched development dependency
|
74
|
-
%w(.bpm
|
74
|
+
%w(.bpm gems uglify-js-1.0.4 lib parse-js.js),
|
75
75
|
|
76
76
|
# required dependency of development dependency
|
77
|
-
%w(.bpm
|
77
|
+
%w(.bpm gems optparse-1.0.1 lib optparse.js)
|
78
78
|
]
|
79
79
|
|
80
80
|
css_dev = [
|
81
81
|
# css of a locally installed development dependency
|
82
|
-
%w(
|
82
|
+
%w(hello_dev vendor style_package css some_style.css)
|
83
83
|
]
|
84
84
|
|
85
85
|
if should_include
|
data/spec/cli/remove_spec.rb
CHANGED
@@ -75,7 +75,7 @@ describe 'bpm remove' do
|
|
75
75
|
output = stdout.read
|
76
76
|
|
77
77
|
no_dependency 'custom_package'
|
78
|
-
File.exists?(home('hello_world', '
|
78
|
+
File.exists?(home('hello_world', 'vendor', 'custom_package', 'package.json')).should be_true
|
79
79
|
end
|
80
80
|
|
81
81
|
it "should remove development dependencies"
|
Binary file
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name" : "backbone",
|
3
|
-
"
|
4
|
-
"
|
3
|
+
"summary" : "Give your JS App some Backbone with Models, Views, Collections, and Events.",
|
4
|
+
"homepage" : "http://documentcloud.github.com/backbone/",
|
5
5
|
"keywords" : ["util", "functional", "server", "client", "browser"],
|
6
6
|
"author" : "Jeremy Ashkenas <jeremy@documentcloud.org>",
|
7
7
|
"contributors" : [],
|
@@ -3,14 +3,14 @@
|
|
3
3
|
"bpm": "1.0.0",
|
4
4
|
|
5
5
|
"dependencies": {
|
6
|
-
"
|
7
|
-
"
|
8
|
-
"
|
6
|
+
"coffee-script": "~> 1.0.0",
|
7
|
+
"spade-handlebars": "~> 1.0.0",
|
8
|
+
"spade": "~> 1.0.0"
|
9
9
|
},
|
10
10
|
|
11
11
|
"bpm:build": {
|
12
12
|
"bpm_libs.js": {
|
13
|
-
"
|
13
|
+
"files": ["lib", "templates"]
|
14
14
|
}
|
15
15
|
}
|
16
16
|
}
|