2015-09-05 1 views
2

Итак, я играл с DocPad в последнее время; Я прошел через учебник, и все было установлено и работало правильно, за исключением ...ошибка ввода docpad undefined .docpad.cson

В интересах видеть, как DocPad работает с более крупным сайтом, я схватил код для сайта Джейсона Янга (http://ytechie.com) от github (почему этот сайт? Здесь я впервые услышал о 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, но он определенно существует в местоположении, указанном в сообщении об ошибке.

Я полностью неверно истолковал смысл этой ошибки, или что? Я бегу Node.js v0.12.7 и DocPad v6.54.2 на Windows 7.

Edit: Вот содержимое моего файла .docpad.cson:

name: "MAC 6a85329428c35b394e921ec0cb3298eed2a1b707" 
email: null 
username: "6a85329428c35b394e921ec0cb3298eed2a1b707" 
subscribed: false 
subscribeTryAgain: null 
tos: true 
identified: true 

ничего магического здесь. По предложению балуптона я провел его через компилятор coffeescript «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 - она ​​просто не могла найти ее, поскольку она была удалена.

Когда я первоначально бежал 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). Не знаю, было ли что-то в моей локальной среде запущено или что-то не так в body of code, я схватил. Я сомневаюсь, что это последнее.

+0

Как я уже говорил, я новичок в DocPad, но если кто-то держит пистолет у меня в голове и заставляет меня угадать ответ на эту проблему, я бы сказал, что у меня есть догадка, что это имеет какое-то отношение к версии различия между компонентами, которые первоначально использовались для сборки сайта ytechie и компонентов, которые у меня есть в моей системе. Но это может быть полная красная селедка. – Dan

+0

Спасибо за обновление вопроса более подробно - кажется, ваше предположение верно - если вы запускаете 'npm install -g docpad', чтобы получить последнюю версию docpad, установленную глобально, а затем запустите' docpad update -global' внутри проекта, чтобы обновить это зависит от docpad до последней, а затем запустить 'docpad run', чтобы повторить попытку, что происходит? – balupton

+0

последнее обновление интересно, не уверен, что может вызвать проблемы с разрешениями, будь то предмет окружения, или если это предмет 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', это сработает? – balupton

ответ

0

Похоже, что возникла проблема с разбором этого файла, поскольку undefined is not a function произошел в eval-заявлении CSON. К сожалению, кажется, что эта ошибка произошла до загрузки файла локали, что объясняет отсутствие хорошей информации в журнале, которая будет представлять собой отдельную ошибку (зарегистрированный отчет here).

Есть ли какие-либо вызовы функций внутри C:\\Users\\harnerd\\.docpad.cson или, возможно, некорректное форматирование, которое CoffeeScript интерпретирует как функцию? Возможно, запустив его через http://coffeescript.org, компилятор «Try CoffeeScript» для проверки был бы полезен? В противном случае, поскольку у этого файла могут быть чувствительные токены, вы можете отправить его по электронной почте на адрес [email protected], и я посмотрю.