2014-08-28 71 views
0

我是新的nodejs和heroku,我正在嘗試部署我的第一個應用程序。nodejs上的heroku commiting node_modules文件路徑太長

已閱讀此帖Should I check in node_modules to git when creating a node.js app on Heroku?看來最好的做法是提交node_modules文件夾。

我的問題是,我不能提交一些node_modules,因爲文件路徑似乎太長,無法管理git。有沒有其他人有這個問題?我使用SourceTree作爲我的Git GUI和運行Windows 7的

錯誤我在sourcetree得到的是:

git -c diff.mnemonicprefix=false -c core.quotepath=false rm -q -f -- node_modules/gulp-concat/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/index.js

fatal: pathspec 'node_modules/gulp-concat/node_modules/gulp-util/node_modules/lodash.template/node_modules/lodash.escape/node_modules/lodash._escapehtmlchar/node_modules/lodash._htmlescapes/index.js' did not match any files

感謝

+0

因此,爲了嘗試解決路徑問題,我將整個回購庫進一步向根目錄移動,我重新安裝了我的模塊,然後提交了一個全新的應用程序。提交似乎工作正常,所有內容都在線上推送。然而,當我開始我的應用程序,我得到「錯誤:無法找到模塊'Lodash._basebind」。 – 2014-08-29 10:58:27

+0

所以現在我正在通過手動添加它說找不到的每個模塊,每當我安裝並提交一個新模塊時,它說它找不到另一個模塊。非常非常困惑。 – 2014-08-29 11:24:59

回答

0

Contrury到了後,我會建議不要犯node_modules成存儲庫。

原因:

  1. 不同的平臺可能會以不同構建模塊。可以在Windows上開發並推送到Linux服務器。

  2. 您可能會在本地計算機上全局安裝一些模塊。在這種情況下,它們不會被安裝在節點模塊中。

  3. 有些模塊只在開發過程中使用,但不在生產中使用。

如果您對heroku的部署速度感到擔心,不要。 Heroku會緩存您使用的所有模塊,並只更新更改。

Eather的方式,你得到的錯誤不是長文件名。因爲你試圖在未跟蹤的文件上做一些操作。或者在不存在的跟蹤文件上。

+0

嘿謝謝你的回覆。關於提交node_modules,我發現在我提交它們之前,我得到的錯誤提示模塊沒有找到。有什麼我應該做的,以使heroku加載所有的依賴關係?其次關於Git錯誤,我認爲它無法找到該文件,因爲路徑太長。該文件是肯定存在的,當我嘗試直接從命令行提交它時,我得到一個路徑長度錯誤。 – 2014-08-28 12:21:08

+0

也許不是所有的模塊都在package.json – Max 2014-08-30 17:10:48

+0

是的,可能是這種情況,但它似乎是所有對具有內部依賴性的模塊的引用,即lodash等。 – 2014-08-31 09:26:15