2012-10-29 31 views
1

花了很多小時試圖找到這個東西,但無濟於事。我相信這很簡單,但也許我一直在盯着這個問題太久。我正在嘗試構建一箇舊代碼的開發環境。由於當前代碼庫的大小,重構不是一個選項。如何強制早午餐0.8.1使用coffescript 1.2

當然,最大的問題是,我試圖模仿這是11個月前建造出來的環境,需要以下

節點v0.6.11 NPM V1.1.1 早午餐V0的事實。 8.1 CoffeeScript的1.2

的package.json目前有

"dependencies": { 
    "coffee-script": ">= 1.1.1", 
    "underscore": ">= 1.1.7", 
    "eco":   ">= 1.0.3", 
    "nomnom":  "1.0.0", 
    "stylus":  ">= 0.13.7", 
    "async":   ">= 0.1.9", 
    "yaml":   ">= 0.2.1", 
    "file":   ">= 0.1.1", 
    "stitch":  ">= 0.3.2", 
    "uglify-js":  ">= 1.0.6" 
    }, 
    "devDependencies": { 
    "coffee-script": ">= 1.1.1", 
    "express":  ">= 2.4.3", 
    "nodeunit":  ">= 0.5.3", 
    "zombie":  ">= 0.9.7" 
    } 

當然,問題是最初安裝了CoffeeScript的是1.4,我需要的是共用1.2進行mplot。我已經嘗試將package.json更改爲「coffee-script」:依賴項部分中的「1.2」,然後運行「cake setup」。但是這並沒有改變任何東西。我在哪裏錯了,或者我接近這一切都是錯誤的?

我在同一個系統上有一個正確版本的coffee-script(1.2)的本地副本,但我不知道如何指向早午餐使用那個而不是安裝在它的子目錄中。

任何幫助表示讚賞。由於

回答

1

npm可以在節點node_modules旁邊項目的package.json文件在本地安裝依賴或全球,如果你與-g標誌(通常在/usr/local/lib/node_modules/)運行npm install

正如您所注意到的,您似乎已在全局和本地安裝了不同版本的coffee-script,並且您希望強制brunch-0.8.1使用coffee-script 1.2。這是我想嘗試:

  • 像之前,在package.json改變coffee-script1.2
  • 刪除目錄中的node_modules目錄,其中包含您剛剛編輯的package.json
  • 在同一目錄下運行npm install,該目錄將讀取已更新版本的編輯過的package.json文件,並重新安裝node_modules中的所有依賴項。

這些步驟將咖啡腳本您本地副本設置爲1.2。通過查看node_modules/coffee-script/package.json中的version屬性來確認這一點。

這仍然可能無法正常工作,但是:

  • cake setup命令可以嘗試執行全球版本咖啡腳本。

我不確定cake setup任務如何查找咖啡腳本的詳細信息,但如果它確實與本地安裝的版本一起工作,則應該很好。

如果沒有,你需要做一個npm uninstall -g coffee-script,並按照其與npm install -g npm install [email protected]這將設置你的全球版本咖啡腳本來1.2

希望這會有所幫助。在npm中確定依賴關係可能會非常棘手,但是如果有疑問,看看package.json文件版本和運行npm list <package name>可能會有用。