所以,最近我一直在玩DocPad;我已經通過教程,並已安裝並正常工作,除了...docpad運行錯誤undefined .docpad.cson
爲了看到DocPad如何與一個更大的網站工作的興趣,我從github中獲取了Jason Young的代碼(http://ytechie.com)爲什麼這個網站?這是我第一次聽說DocPad的地方)。根據指示,我執行了npm install
(沒有問題);然後docpad run
。它返回與此錯誤:
C:\Users\harnerd\Documents\GitHub\ytechie-docpad>docpad run
error: undefined 'C:\\Users\\harnerd\\.docpad.cson'
error: null
error: null
TypeError: undefined is not a function
at Object.exports.eval (C:\Users\harnerd\Documents\GitHub\ytechie- docpad\node_modules\coffee-script\lib\coffee-script\coffee-script.js:120:47)
at Object.CSON.parseSync (C:\Users\harnerd\Documents\GitHub\ytechie-docpad\node_modules\docpad\node_modules\cson\out\lib\cson.js:90:34)
at null._onTimeout (C:\Users\harnerd\Documents\GitHub\ytechie-docpad\node_modules\docpad\node_modules\cson\out\lib\cson.js:70:24)
at Timer.listOnTimeout (timers.js:119:15)
info: null
由於我是新來DocPad,有可能是一些簡單而明顯的我失蹤,但我不知道是什麼。我必須承認,DocPad在出現問題時有點難以理解。在我看來,它抱怨它無法找到.docpad.cson文件,但它確實存在於錯誤消息中引用的位置。
我完全誤解了這個錯誤的含義,或者是什麼?我在Windows 7上運行的node.js v0.12.7和docpad v6.54.2
編輯:這裏是我的.docpad.cson文件的內容:
name: "MAC 6a85329428c35b394e921ec0cb3298eed2a1b707"
email: null
username: "6a85329428c35b394e921ec0cb3298eed2a1b707"
subscribed: false
subscribeTryAgain: null
tos: true
identified: true
沒有什麼神奇的在這裏。在balupton的建議中,我通過咖啡腳本「Try CoffeeScript」編譯器運行它,但毫不奇怪它只是產生了一些JSON。
編輯2:嘗試本傑明在他的評論中的建議,我跑npm install -g docpad
,成功運行。然後我跑docpad update --global
內的項目以及與此得到了回報:
C:\Users\harnerd\Documents\GitHub\ytechie-docpad>docpad update --global
info: Welcome to DocPad v6.78.3 (global installation: C:\Users\harnerd\AppData\Roaming\npm\node_modules\docpad)
notice: If everyone who saw this message donated $1/week, maintaining DocPad would become sustainable: http://docpad.org/donate
info: Contribute: http://docpad.org/docs/contribute
info: Plugins: cleanurls, coffeescript, dateurls, eco, less, livereload, marked, paged, partials, sitemap, tagging
info: Environment: development
info: Cleaning files
info: Cleaned files
\
> [email protected] preinstall C:\Users\harnerd\Documents\GitHub\ytechie- docpad\node_modules\docpad-plugin- sitemap\node_modules\extendr\node_modules\typechecker
> node ./cyclic.js
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "[email protected]" "docpad-p
[email protected]" "[email protected]" "[email protected]" "docpad-plugin- [email protected]" "[email protected]" "[email protected]" "--save"
npm ERR! node v0.12.7
npm ERR! npm v2.11.3
npm ERR! path C:\Users\harnerd\Documents\GitHub\ytechie- docpad\node_modules\docpad-plugin-partials
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! Error: EPERM, lstat 'C:\Users\harnerd\Documents\GitHub\ytechie- docpad\node_modules\docpad-plugin-partials'
npm ERR! at Error (native)
npm ERR! { [Error: EPERM, lstat 'C:\Users\harnerd\Documents\GitHub\ytechie- docpad\node_modules\docpad-plugin-partials']
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! path: 'C:\\Users\\harnerd\\Documents\\GitHub\\ytechie- docpad\\node_modules\\docpad-plugin-partials' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
npm ERR! Please include the following file with any support request:
npm ERR! C:\Users\harnerd\Documents\GitHub\ytechie-docpad\npm-debug.log
error: The action completed successfully
error: An error occured:
Error: Command exited with a non-zero status code.
at Object.safeps.prepareExecutableResult (C:\Users\harnerd\AppData\Roaming\npm\node_modules\docpad\node_modules\safeps\ou t\lib\safeps.js:190:24)
at ChildProcess.<anonymous> (C:\Users\harnerd\AppData\Roaming\npm\node_modules\docpad\node_modules\safeps\ou t\lib\safeps.js:322:29)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
To report the above, follow the guide at: http://docpad.org/bug-report
Error: Command exited with a non-zero status code.
at Object.safeps.prepareExecutableResult (C:\Users\harnerd\AppData\Roaming\npm\node_modules\docpad\node_modules\safeps\ou t\lib\safeps.js:190:24)
at ChildProcess.<anonymous> (C:\Users\harnerd\AppData\Roaming\npm\node_modules\docpad\node_modules\safeps\ou t\lib\safeps.js:322:29)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
C:\Users\harnerd\Documents\GitHub\ytechie-docpad>
儘管故宮的說法,我是管理員身份運行;然而,真正的問題不是npm沒有docpad-plugin-partials文件夾的權限 - 它根本找不到它,因爲它已被刪除。
當我最初運行的項目npm install
中的package.json中列出的所有依賴於node_modules文件夾中創建,但後來當我跑docpad update --global
去除docpad-插件 - 諧音文件夾。
要查看我是否可以重複此行爲,我爲該網站抓取了原始代碼兩次。每次運行npm install
(沒有問題 - 所有依賴關係在node_modules中都有自己的文件夾),然後docpad run
(遇到與.docpad.cson文件相同的問題),最後是docpad update --global
。相關文件夾已從node_modules文件夾中刪除,但從未使用相同的文件夾。
編輯3:傳奇繼續。儘管沒有任何改變,但執行docpad update --global
時文件丟失並保持丟失的奇怪問題消失了,我又回到了原始問題(error: undefined 'C:\\Users\\harnerd\\.docpad.cson
)。不知道我當地環境中的某些東西是否被盜,或者我抓住了哪些東西是錯誤的。我懷疑它是後者。
正如我所提到的,我是DocPad的新手,但如果有人拿着槍對我的頭,並讓我猜這個問題的答案,我會說我有一個預感,它與版本有關最初用於構建ytechie站點的組件與我現在在系統上使用的組件之間的差異。但那可能是一個完全的紅鯡魚。 – Dan
感謝您用更多細節更新問題 - 看起來您的假設是正確的 - 如果您運行'npm install -g docpad'來獲取全局安裝的最新docpad版本,然後在項目內部運行'docpad update --global'來更新它是最新的docpad依賴關係,然後運行'docpad run'重試,會發生什麼? – balupton
最新的更新很有趣,不確定可能會導致這些權限問題,無論是環境問題,還是docpad問題。爲了找到答案,讓我們試試這個。失敗的命令是當'docpad update --global'執行這個命令時:'npm install --save docpad @ 6 docpad-plugin-marked @ 2 docpad-plugin-eco @ 2 docpad-plugin-less @ 2 docpad-plugin如果你刪除了node_modules目錄,然後運行'npm install',然後直接運行該命令,然後運行'docpad run',它是否工作,你可以使用'partial @ docpad-plugin-coffeescript @ 2 docpad-plugin-sitemap @ 2'。 – balupton