2013-09-21 27 views
0

首先,抱歉,我的英語和遺憾是新的咕嚕聲。現在grunt-usemin和index.html上的多個路徑

,我的問題;-)

我有2個目錄,我的Javascript文件(/組件和/ src目錄/主/ JavaScript的),包括在其上/ src目錄/主/ HTML中的index.html。想象一下我在/目錄下的gruntfile。

我想找到一種最簡單的方法,只需在/ target/gui/javascript目錄下爲我的所有javascript文件提供.js文件。

但在此之前,我可以通過JavaScript源目錄有一個文件。但是,我對index.html發表以下評論時遇到問題。

<!-- build:js(components/angular) javascript/components.js --> 
    <script src="../../../components/angular/angular.js"></script> 
<!-- endbuild --> 
<!-- build:js(src/main/javascript) javascript/app.js --> 
    <script src="../javascript/app.js"></script> 
    <script src="../javascript/lists/services/lists.js"></script> 
    <script src="../javascript/lists/controllers/listsctrl.js"></script> 
    <script src="../javascript/lists/controllers/listctrl.js"></script> 
<!-- endbuild --> 

我的問題是我components.js是空。我可以看到一個奇怪的東西,當我啓動我的咕嚕構建:

Found a block: 
    <!-- build:js(components/angular) javascript/components.js --> 
    <script src="../../../components/angular/angular.js"></script> 
    <!-- endbuild --> 
    Updating config with the following assets: 
    - ../components/angular/angular.js 

與../components/angular/angular.js更新?不是組件/ angular/angular.js? 我不明白。 我與我的CSS文件同樣的事情,和它做什麼,我想:

<!-- build:css(components/bootstrap/css) css/components.css --> 
    <link rel="stylesheet" href="../../../components/bootstrap/css/bootstrap.css" type="text/css" /> 
    <link rel="stylesheet" href="../../../components/bootstrap/css/bootstrap-responsive.css" type="text/css" /> 
    <!-- endbuild --> 
    <!-- build:css(src/main/css) css/app.css --> 
    <link rel="stylesheet" href="../css/shoppinglist.css" type="text/css" /> 
    <!-- endbuild --> 

我可以看到

Found a block: 
    <!-- build:css(components/bootstrap/css) css/components.css --> 
    <link rel="stylesheet" href="../../../components/bootstrap/css/bootstrap.css" type="text/css" /> 
    <link rel="stylesheet" href="../../../components/bootstrap/css/bootstrap-responsive.css" type="text/css" /> 
    <!-- endbuild --> 
Updating config with the following assets: 
    - components/bootstrap/css/bootstrap.css 
    - components/bootstrap/css/bootstrap-responsive.css 

因此,對於CSS,咕嚕明白我想要的路徑?

我在Gruntfile上有什麼?

(...) 
    dest: { 
     buildRoot : 'target', 
     guiRoot : 'target/gui', 
     html: { 
      index: 'target/gui/index.html', 
      partials: 'target/gui/partials' 
     }, 
     res:  'target/gui/assets' 
    }, 
    useminPrepare: { 
     html: '<%= dest.html.index %>' 
    }, 

    usemin: { 
     html: ['<%= dest.html.index %>'], 
     options: { 
     dirs: ['<%= dest.guiRoot %>'] 
     } 
    } 
    (...) 

我用咕嚕建設有:

grunt.loadNpmTasks('grunt-contrib-clean'); 
    grunt.loadNpmTasks('grunt-contrib-copy'); 
    grunt.loadNpmTasks('grunt-contrib-concat'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-contrib-cssmin'); 
    grunt.loadNpmTasks('grunt-usemin'); 


    grunt.registerTask('build', ['clean', 'copy:html', 'copy:res', 'copy:server', 'copy:heroku', 'useminPrepare', 'concat', 'uglify', 'cssmin', 'usemin']); 

有人能幫助我嗎?

最好的問候,

馬努

回答

2

Usemin的「備用搜索路徑」作爲原點目錄來搜索您的index.html引用路徑。

在您的配置,你必須取消在你的路三個..爲了找到component目錄(位於根目錄)。

這個配置將這樣的伎倆:

<!-- build:js(aFakeDir/anotherFakeDir/yetAnotherFakeDir) javascript/components.js --> 
    <script src="../../../components/angular/angular.js"></script> 
<!-- endbuild --> 

注意,您不必真正的指定目錄名。

+0

謝謝!有用 ! – Manu