Итак, я играл с 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, я схватил. Я сомневаюсь, что это последнее.
Как я уже говорил, я новичок в 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', это сработает? – balupton