Skip to content

Commit 6f5b508

Browse files
committed
Don't verify bower packages those installed via npm|yarn
1 parent b910283 commit 6f5b508

File tree

5 files changed

+40
-3
lines changed

5 files changed

+40
-3
lines changed

lib/dependency-checker.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,19 @@ class EmberCLIDependencyChecker {
133133
}
134134
}
135135

136+
normalizedBowerDependencies() {
137+
const npmDependencies = this.project.dependencies();
138+
const bowerDependencies = this.project.bowerDependencies();
139+
Object.keys(bowerDependencies).forEach((pkg) => {
140+
if(npmDependencies.hasOwnProperty(`@bower_components/${pkg}`)) {
141+
delete bowerDependencies[pkg];
142+
}
143+
});
144+
return bowerDependencies;
145+
}
146+
136147
readBowerDependencies() {
137-
return this.readDependencies(this.project.bowerDependencies(), 'bower');
148+
return this.readDependencies(this.normalizedBowerDependencies(), 'bower');
138149
}
139150

140151
readNPMDependencies() {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"name": "project-bower-away",
3+
"dependencies": {
4+
"ember": "1.0.0"
5+
}
6+
}

tests/fixtures/project-bower-away/node_modules/@bower_components/ember/package.json

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/unit/dependency-checker-bower-test.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ describe('EmberCLIDependencyChecker', function() {
1111
DependencyChecker.setAlreadyChecked(false);
1212
});
1313

14-
function createProject(bowerDependencies) {
14+
function createProject(bowerDependencies, npmDependencies = {}) {
1515
return projectBuilder.build({
1616
root: 'tests/fixtures/project-bower-check',
17-
bowerDependencies: projectBuilder.buildBowerDependencies(bowerDependencies)
17+
bowerDependencies: projectBuilder.buildBowerDependencies(bowerDependencies),
18+
dependencies: projectBuilder.buildDependencies(npmDependencies),
1819
});
1920
}
2021

@@ -98,5 +99,10 @@ describe('EmberCLIDependencyChecker', function() {
9899
const project = createProject({ 'ember': '*' });
99100
assertNoBowerError(project);
100101
});
102+
103+
it('when the package is installed via yarn or npm', function() {
104+
const project = createProject({ 'ember': '1.0.0' }, { '@bower_components/ember': '1.0.0' });
105+
assertNoBowerError(project);
106+
});
101107
});
102108
});

tests/unit/dependency-checker-package-manager-test.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,11 @@ describe('EmberCLIDependencyChecker', function() {
6565
const project = createProject({ 'example-2-tar-gz': 'http://ember-cli.com/example-2-2.0.0.tar.gz' }, { root: 'tests/fixtures/project-'+ packageManagerName + '-tar-gz-check' });
6666
assertPackageManagerError(project);
6767
});
68+
69+
it('when the specified bower package is not installed via npm', function() {
70+
const project = createProject({ '@bower_components/foo': '0.1.1' });
71+
assertPackageManagerError(project);
72+
});
6873
});
6974

7075
describe('does not report satisfied ' + packageManagerName + ' dependencies', function() {
@@ -117,6 +122,11 @@ describe('EmberCLIDependencyChecker', function() {
117122
const project = createProject({ 'example-tar-gz': 'http://ember-cli.com/example-2.0.0.tar.gz' }, { root: 'tests/fixtures/project-'+ packageManagerName + '-tar-gz-at-check' });
118123
assertNoPackageManagerError(project);
119124
});
125+
126+
it('when the specified bower package is installed via npm', function() {
127+
const project = createProject({ '@bower_components/ember': '1.0.0' }, { root: 'tests/fixtures/project-bower-away' });
128+
assertNoPackageManagerError(project);
129+
});
120130
});
121131

122132
describe('sibling node_modules/ directory', function() {

0 commit comments

Comments
 (0)