ProcessMigrator icon indicating copy to clipboard operation
ProcessMigrator copied to clipboard

Error due to node_modules and too many sub-directories

Open jlahijani opened this issue 10 years ago • 3 comments

I have a Gulp-based frontend workflow, and as a result, a "node_modules" folder appears in my /site/templates/ folder, which is normal.

Some Node modules have many many nested subdirectories, which sometimes hits a limitation on Windows. When trying to Export using ProcessMigrator, I get an error which suggests that may be the issue:

 ProcessWire: ProcessMigrator: RecursiveDirectoryIterator::__construct(C:/Users/jlahijani/Projects/mysite.com/site/templates\node_modules\gulp-imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle\node_modules\bin-build\node_modules\decompress\node_modules\buffer-to-vinyl\node_modules\uuid\benchmark,C:/Users/jlahijani/Projects/mysite.com/site/templates\node_modules\gulp-imagemin\node_modules\imagemin\node_modules\imagemin-gifsicle\node_modules\gifsicle\node_modules\bin-build\node_modules\decompress\node_modules\buffer-to-vinyl\node_modules\uuid\benchmark): The system cannot find the path specified. (code: 3)
DEBUG MODE BACKTRACE ($config->debug == true):
#0 [internal function]: RecursiveDirectoryIterator->__construct('C:/Users/jlahij...', 4096)
#1 C:\Users\jlahijani\Projects\mysite.com\site\modules\ProcessMigrator\ProcessMigrator.module(280): RecursiveDirectoryIterator->getChildren()
#2 C:\Users\jlahijani\Projects\mysite.com\site\modules\ProcessMigrator\ProcessMigrator.module(120): ProcessMigrator->buildExportForm2()
#3 [internal function]: ProcessMigrator->___executeExport()
#4 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(397): call_user_func_array(Array, Array)
#5 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(332): Wire->runHooks('executeExport', Array)
#6 C:\Users\jlahijani\Projects\mysite.com\wire\core\ProcessController.php(236): Wire->__call('executeExport', Array)
#7 C:\Users\jlahijani\Projects\mysite.com\wire\core\ProcessController.php(236): ProcessMigrator->executeExport()
#8 [internal function]: ProcessController->___execute()
#9 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(397): call_user_func_array(Array, Array)
#10 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(332): Wire->runHooks('execute', Array)
#11 C:\Users\jlahijani\Projects\mysite.com\wire\core\admin.php(93): Wire->__call('execute', Array)
#12 C:\Users\jlahijani\Projects\mysite.com\wire\core\admin.php(93): ProcessController->execute()
#13 C:\Users\jlahijani\Projects\mysite.com\wire\modules\AdminTheme\AdminThemeDefault\controller.php(13): require('C:\\Users\\jlahij...')
#14 C:\Users\jlahijani\Projects\mysite.com\site\templates\admin.php(15): require('C:\\Users\\jlahij...')
#15 C:\Users\jlahijani\Projects\mysite.com\wire\core\TemplateFile.php(182): require('C:\\Users\\jlahij...')
#16 [internal function]: TemplateFile->___render()
#17 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(397): call_user_func_array(Array, Array)
#18 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(332): Wire->runHooks('render', Array)
#19 C:\Users\jlahijani\Projects\mysite.com\wire\modules\PageRender.module(422): Wire->__call('render', Array)
#20 C:\Users\jlahijani\Projects\mysite.com\wire\modules\PageRender.module(422): TemplateFile->render()
#21 [internal function]: PageRender->___renderPage(Object(HookEvent))
#22 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(397): call_user_func_array(Array, Array)
#23 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(332): Wire->runHooks('renderPage', Array)
#24 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(453): Wire->__call('renderPage', Array)
#25 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(453): PageRender->renderPage(Object(HookEvent))
#26 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(332): Wire->runHooks('render', Array)
#27 C:\Users\jlahijani\Projects\mysite.com\wire\modules\Process\ProcessPageView.module(187): Wire->__call('render', Array)
#28 C:\Users\jlahijani\Projects\mysite.com\wire\modules\Process\ProcessPageView.module(187): Page->render()
#29 [internal function]: ProcessPageView->___execute(true)
#30 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(397): call_user_func_array(Array, Array)
#31 C:\Users\jlahijani\Projects\mysite.com\wire\core\Wire.php(332): Wire->runHooks('execute', Array)
#32 C:\Users\jlahijani\Projects\mysite.com\index.php(241): Wire->__call('execute', Array)
#33 C:\Users\jlahijani\Projects\mysite.com\index.php(241): ProcessPageView->execute(true)
#34 {main}

Perhaps completely ignoring "node_modules" would be a good idea, or at least a configuration option to. This could also apply to "bower_components" when using bower.

jlahijani avatar Aug 03 '15 22:08 jlahijani

Thanks @jlahijani for the report.

I have made a quick fix which I hope should work - please let me know how it goes.

You will find a module config setting: Paths of parent directories to exclude from migration

Enter:

node_modules 

in that and I think it should solve the problem.

adrianbj avatar Aug 04 '15 00:08 adrianbj

Using PW 3.0.12. Seems to be an issue when exporting. I made sure to put node_modules in the ignore list. Here's the error I'm getting.

RecursiveDirectoryIterator::__construct(C:/Users/jlahijani/Projects/test.com/site/templates\node_modules\gulp-imagemin\node_modules\gulp-util\node_modules\dateformat\node_modules\meow\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\vendor,C:/Users/jlahijani/Projects/test.com/site/templates\node_modules\gulp-imagemin\node_modules\gulp-util\node_modules\dateformat\node_modules\meow\node_modules\read-pkg-up\node_modules\read-pkg\node_modules\load-json-file\node_modules\parse-json\vendor): The system cannot find the path specified. (code: 3)

(note: on Windows with WAMP)

jlahijani avatar Mar 31 '16 15:03 jlahijani

@jlahijani - is this fixed by the try/catch in your PR? If so, then this should be fixed in the latest version. Please close if you think appropriate.

adrianbj avatar Mar 16 '17 17:03 adrianbj