2014-09-21 23 views
8

Vì vậy - tôi muốn có một vở kịch với typeahead trong một ứng dụng ember.ember-cli thêm phụ thuộc với bower

tôi nhận được một ứng dụng cli và chạy sau đó tôi chạy

bower install typeahead.js 

tôi có thể thấy rằng mã đã được đưa vào bower_components.

tôi sau đó thêm dòng sau vào các brocfile:

/* global require, module */ 

var EmberApp = require('ember-cli/lib/broccoli/ember-app'); 

var app = new EmberApp(); 

// Use `app.import` to add additional libraries to the generated 
// output files. 
// 
// If you need to use different assets in different 
// environments, specify an object as the first parameter. That 
// object's keys should be the environment name and the values 
// should be the asset to use in that environment. 
// 
// If the library that you are including contains AMD or ES6 
// modules that you would like to import into your application 
// please specify an object with the list of modules as keys 
// along with the exports of each module as its value. 

app.import('bower_components/typeahead.js/dist/typeahead.bundle.min.js'); 

module.exports = app.toTree(); 

Tuy nhiên nó không hoạt động - tôi nhận được

Uncaught ReferenceError: Bloodhound is not defined 

Từ đọc các tài liệu - cài đặt với Chòi chơi và thêm các dòng trong brocfile nên là đủ để đáp ứng nó? Tôi có đọc sai hay đây có phải là lỗi không?

tôi đã tạo ra một repo GIT công cộng trong đó cho thấy vấn đề này:

https://github.com/wayne-o/ember-cli-bootstrap

Tất cả tôi đã làm là:

ember new bootstrap-test 
bower install bootstrap 

Và sau đó nói thêm:

app.import('bower_components/bootstrap/dist/css/bootstrap.css'); 
app.import('bower_components/bootstrap/dist/js/bootstrap.js'); 

để brockfile ...

Nó không hoạt động ...

+0

typeahead.bundle.min.js phải chứa mã vạch. Hãy thử xóa nhập mã bloodhound.js –

+0

Vẫn gặp lỗi:/ – iwayneo

+0

@drorb Tôi đã sửa đổi câu hỏi và thêm repo trên github, hiển thị sự cố ... – iwayneo

Trả lời

5

Bạn đã không chia sẻ Brocfile.js của mình, nhưng tôi đã gặp sự cố tương tự khi tôi thêm phụ thuộc sau dòng module.exports = app.toTree(); ở cuối tệp đó. Tài liệu này là not terribly clear về việc này, nhưng module.exports = app.toTree(); phải luôn xuất hiện lần cuối trong Brocfile.js. Hãy thử di chuyển câu lệnh app.import() của bạn phía trên dòng này và mọi thứ sẽ hoạt động chính xác.

Cập nhật

Kéo xuống repo của bạn, tôi nhận thấy một vài vấn đề. Đầu tiên là bạn cần phải vượt qua --save-dev để cài đặt bower cho bootstrap và typeahead.js để những cài đặt này được cài đặt khi những người khác kéo xuống kho lưu trữ của bạn. Điều đó sẽ thêm một phần như thế này để bower.json của bạn:

"devDependencies": { 
    "bootstrap": "~3.2.0", 
    "typeahead.js": "~0.10.5" 
} 

Tôi cũng đã thêm "Bloodhound": true đến phần prefdef của .jshintrc để tránh các lỗi jshint về xây dựng:

"predef": { 
    "document": true, 
    "window": true, 
    "-Promise": true, 
    "Bloodhound": true 
    }, 

Bạn cũng có thể thay thế của bạn Tham chiếu $ trong index.js với Ember.$ để tránh lỗi jshint khác.

Khi tôi đã thực hiện việc này, tôi có thể chạy ember serve và tải ứng dụng mà không có bất kỳ vấn đề nào trong Bloodhound.

+3

Chìa khóa cho nó là bạn cần phải khởi động lại máy chủ sau khi thêm phụ thuộc – iwayneo

+0

Vâng, điều đó quá :) – Dhaulagiri

Các vấn đề liên quan