2015-05-05 47 views
1

我有這個目錄結構:不能找到一種方法與requirejs優化和咕嚕如下:

webapp     
    ├──static 
    │ ├── app 
    │     ├── config.js 
    │    ├── frontpage.js 
    │    ├── profile.js 
    │      └── utils.js 
Gruntfile.js 

我試圖用咕嚕-的contrib-requirejs優化我的依賴關係profilefrontpage。現在我的config.js的樣子:

require.config({ 
     { 
      baseUrl:"/static/app", 
      shim: { 
      bootstrap : { "deps" :['jquery'] } , 
      velocity : { "deps" : ['jquery']} 
      }, 
      paths: { 
      jquery: "../bower_components/jquery/dist/jquery.min", 
      bootstrap : "//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min", 
      requirejs: "../bower_components/requirejs/require", 
      handlebars: "../bower_components/handlebars/handlebars.min", 
      velocity: "../bower_components/velocity/velocity.min" 

      }, 
      packages: [] 
     }); 

我試過咕嚕-需要,配置

requirejs: { 
      compile: { 
      options: { 
       appDir: "static/app", 
       modules : [ 
       { 
        name: "profile"     
       } 
       ], 
       mainConfigFile: "./static/app/config.js", 
       optimize: "none", 
       dir: "./static/build/" 
      } 
      } 
     } 

以下配置,但我得到這個錯誤:

Running "requirejs:compile" (requirejs) task 
{ [Error: Error: ERROR: module path does not exist: /static/app/profile.js for module named: profile. Path is relative to: /webapp 
[..] 

這是奇怪的,因爲那條路是正確的!

我找不到這樣的例子,任何人都可以幫忙嗎?

UPDATE:

所有我需要的是調整在Gruntfile.js的baseUrl和我刪除appDir。 requirejs選項中的baseUrl現在與config中的相同。

requirejs: { 
      compile: { 
      options: {   
       baseUrl: "static/app", 
      /* modules : [ 
       { 
        name: "profile" 

       }, 
       { 
        name: "frontpage" 

       } 
       ],*/ 
       mainConfigFile: "./static/app/config.js", 
       optimize: "none", 
       dir: "./static/build/" 
      } 
      } 
     } 

回答

0

因爲你config.js和profile.js具有相同的路徑你在配置的baseUrl是錯誤的。

我在我的機器上測試了這個配置並且正在工作。

Gruntfile.js

module.exports = function(grunt) { 

grunt.initConfig({ 
    requirejs: { 
     compile: { 
      options: { 
       appDir: "webapp/static/app", 
       modules : [ 
       { 
        name: "profile" 
       } 
       ], 
       mainConfigFile: "webapp/static/app/config.js", 
       optimize: "none", 
       dir: "./dist/" 
      } 
     } 
    } 
    }); 
    grunt.loadNpmTasks('grunt-contrib-requirejs'); 


    grunt.registerTask('default', ['requirejs']); 

}; 

config.js

require.config(
{ 
    baseUrl:".", 
    packages: [], 
} 
); 
+0

我需要的baseUrl在配置是它在我的代碼的方式。但我設法找到了一種方法來實現它,見上文 – gotch4