2012-09-21 48 views
1

我試圖從終端優化一個javascript模塊。這是構建文件(在一個名爲build.js)我運行它反對:使用RequireJS優化的奇怪輸出

({ 
    appDir: '.', 
    baseUrl: '.', 

    optimize: 'none', 
    dir: '.', 

    stubModules: ['cs'], 

    paths: { 
     'cs': 'cs', 
     'coffee-script': 'coffee-script' 
    }, 

    modules: [{ 
     name: 'main', 
     exclude: ['coffee-script'] 
    }] 
}) 

在終端,我跑

r.js -o name=build out=main-built.js 

這裏是產生內容主build.js:

({appDir:".",baseUrl:".",optimize:"none",dir:".",stubModules:["cs"],paths:{cs:"cs","coffee-script":"coffee-script"},modules:[{name:"main",exclude:["coffee-script"]}]}),define("build",function(){})

我不明白這個輸出。爲什麼我的模塊根本沒有輸出?爲什麼uglify.js在我專門編寫優化時運行:'none'?爲什麼r.js在運行-o時不會拋出任何錯誤?

回答

0

「名稱」是您的入門模塊的名稱。這實際上是相同的名稱作爲構建,所以這可能是爲什麼會出現混亂......

build.js 
({ 
    name: 'mymodule', // replace this by the name of your first module, the wrapper. 
    appDir: '.', 
    baseUrl: '.', 

    optimize: 'none', 
    dir: '.', 

    stubModules: ['cs'], 

    paths: { 
     'cs': 'cs', 
     'coffee-script': 'coffee-script' 
    }, 

    modules: [{ 
     name: 'main', 
     exclude: ['coffee-script'] 
    }] 
}) 

命令行我與節點中使用:node r.js -o build.js

我不是一個requireJS專家或什麼,我只是發現了這些我認爲是錯誤的東西。你可以看到r.js在文件末尾建立了一個名爲build的模塊。

+0

如果「mymodule」是第一個模塊,那麼下面的「main」是什麼?這是第二個模塊嗎? – zakdances

+0

啊對,我讀得太快......但是你使用的命令覆蓋了build.js的主要道具......並且要證明build.js沒有被使用,你的文件就變得很糟糕。只需調用r.js -o -build.js而不使用名稱部分,即可指向您的配置文件。 – Salketer