2014-12-04 33 views
0

這讓我感到非常緊張。我在一臺新計算機上克隆了我的項目,運行了npm installbower install,但之後運行ember server一直告訴我它找不到我的moment.js文件,但我在Brocfile中有正確的路徑。我必須在安裝後更改Brocfile,因爲文件夾從「momentjs」更改爲「moment」,但它看起來仍然在舊的地方。我也清除了bower和npm的緩存。這裏的錯誤:Ember服務器不斷抱怨找不到文件

$ ember server 
version: 0.1.4 
Could not find watchman, falling back to NodeWatcher for file system events 
Livereload server on port 35729 
Serving on http://0.0.0.0:4200/ 
Path or pattern "bower_components/momentjs/moment.js" did not match any files 
Error: Path or pattern "bower_components/momentjs/moment.js" did not match any files at Object.multiGlob (c:\Dev\star\node_modules\ember-cli\node_modules\broccoli-kitchen-sink-helpers\index.js:202:13) 

我Brocfile有這樣一行: app.import(app.bowerDirectory + '/moment/moment.js');這也正是該文件。

我甚至只是將ember-cli升級到最新版本,接下來的一切,清除了tmp和dist文件夾,重新運行npm和bower install,仍然出現這個錯誤。這就像它沒有從Brocfile中讀取什麼東西。

編輯:添加brocfile.js:

/* global require, module */ 

var pickFiles = require('broccoli-static-compiler'); 
var mergeTrees = require('broccoli-merge-trees'); 
var EmberApp = require('ember-cli/lib/broccoli/ember-app'); 
var fontAwesome; 
var app = new EmberApp({ 
    vendorFiles: { 
    'es5-shim.js': 'bower_components/es5-shim/es5-shim.js', 
    'es5-sham.js': 'bower_components/es5-shim/es5-sham.js' 
    } 
}); 

//these font files will be put into the assets/fonts folder in public/ and dist/ 
fontAwesome = pickFiles('vendor/sb-admin-2/font-awesome-4.2.0/fonts', { 
    srcDir: '/', 
    files: ['*'], 
    destDir: '/assets/fonts' 
}); 

// Use `app.import` to add additional libraries to the generated 
// output files. 

//only using the js and font files from bootstrap, sass stylesheets are in app/styles 
app.import('bower_components/moment/moment.js'); 
app.import(app.bowerDirectory + '/respond/dest/respond.min.js'); 
app.import(app.bowerDirectory + '/bootstrap-sass-official/assets/javascripts/bootstrap/tooltip.js'); 
app.import('vendor/sb-admin-2/js/bootstrap.min.js'); 
app.import(app.bowerDirectory + '/ember-addons.bs_for_ember/dist/js/bs-core.min.js'); 
app.import(app.bowerDirectory + '/ember-addons.bs_for_ember/dist/js/bs-progressbar.min.js'); 
app.import(app.bowerDirectory + '/ember-addons.bs_for_ember/dist/js/bs-nav.min.js'); 
app.import(app.bowerDirectory + '/ember-addons.bs_for_ember/dist/js/bs-badge.min.js'); 
app.import('vendor/sb-admin-2/js/plugins/metisMenu/metisMenu.js'); 
app.import('vendor/sb-admin-2/css/plugins/metisMenu/metisMenu.css'); 
app.import('vendor/sb-admin-2/js/sb-admin-2.js'); 
//sb-admin-2 scss is imported in app/styles/app.scss 
app.import('vendor/sb-admin-2/font-awesome-4.2.0/css/font-awesome.min.css'); 

//placholder attribute polyfill 
app.import(app.bowerDirectory + '/better-dom/dist/better-dom-legacy.js'); 
app.import(app.bowerDirectory + '/better-dom/dist/better-dom.js'); 
app.import(app.bowerDirectory + '/better-placeholder-polyfill/dist/better-placeholder-polyfill.js'); 

// 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. 

module.exports = mergeTrees([ 
    app.toTree(), 
    fontAwesome]); 
+0

你可以發佈你的brocfile嗎?另外,請嘗試對涼亭路徑進行硬編碼以查看它是否有效。即'app.import('bower_components/momentjs/moment.js')。 – 2014-12-04 19:42:55

+0

@ Mike1o1:我加了它;硬編碼路徑沒有什麼區別。 – redOctober13 2014-12-04 20:15:29

+0

我的建議是:製作一個能夠重現問題的最小測試用例。 – givanse 2014-12-04 20:22:29

回答

1

我發現這個問題。這是ember-pikaday node_module,它有一個自己的Brocfile和一個index.js,它們都執行app.import並查找「momentjs」文件夾。我只是假定添加的組件是兼容的,但我想我學到了一些東西。

相關問題