lydell/elm-watch

Command line is too long error

Opened this issue · 1 comments

I've been trying out elm-watch and it has been working great so far.

I did encounter a curious problem. We have 99 target inputs and when running hot mode I got a 'The command line is too long.' error. This is the full error:

-- UNEXPECTED ELM OUTPUT ----------------------------------------------------------------------------------------------------------------------------
Target: Widgets

I ran the following commands:

cd 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend'
elm make --report=json --output=/dev/null 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\AuthorizeConsumer\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\ChooseAccount\List\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Embed\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\ForgotPassword\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Home\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Login\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Mix\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Mix\PublicName\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\NotVerified\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Profile\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Radio\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Settings\Account\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Settings\Profile\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Signup\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Tiles\TileName\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\UpdateUserEmail\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Administrators\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Authentication\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Contact\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Customization\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Dashboard\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Home\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Invoice\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\IpBlock\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Lti\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\NotAvailable\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Office365\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Pay\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Sis\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\SisDev\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Subscription\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\UserGroups\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Users\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Workspace\Children\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Pages\Qr\GameLayerEvent\Page.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\AchievementUnlocked\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\AddWebmix\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\AffiliateInformation\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\CookieUserLoader\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\EmbedWebmix\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\IpBlock\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\KeyboardShortcuts\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\LevelUp\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\MoveCopyTile\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\Player\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\PostCleverRegistration\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\Profile\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\PublishToWorkspace\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\PublicWebmixDetails\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\RelatedWebmixes\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\RemoveAccount\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\RemoveWebmix\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\RequestCollaboration\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\SetHomepage\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\ShareProfile\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\ShareTile\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\ShareWebmix\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\Social\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\Subscription\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\UserAffiliation\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\WebmixCollaboration\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\WorkspaceQuickSetup\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\ProfileImageUpload\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\TileImageUpload\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\WorkspaceAvatarUpload\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\WorkspaceLoginBackgroundUpload\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\WorkspaceLoginLogoUpload\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Dialogs\WorkspaceLogoUpload\Dialog.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\GridOverlays\PublicWebspaces\GridOverlay.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\GridOverlays\Webspaces\GridOverlay.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Amazon\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Annotation\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Bing\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Buienradar\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Calculator\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\CustomLogo\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Date\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Deprecated\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Dictionary\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Encyclopedia\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Google\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\GoogleTranslate\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\HeroSearch\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Horoscope\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Messages\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Notepad\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\SafeSearch\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Sigmund\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\SweetSearch\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\SymbalooGallery\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\SymbalooLogo\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\SymbalooSearch\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Tasklist\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Time\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Traffic\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Weather\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Helpers\WebFeed\WebFeedWidget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Welcome\Widget.elm' 'C:\Users\harm\Dev\Symbaloo\main\symbaloo-web\frontend\src\Widgets\Yahoo\Widget.elm'

I expected it to either exit 0 with no output (success),
or exit 1 with JSON on stderr (compile errors).

But it exited like this:

exit 1
The command line is too long.

71 errors found

server: http://localhost:62829, network: http://192.168.2.1:62829
web socket connections: 0, elm-watch-node workers: 1

I believe the max line length for command line on Windows is 8191 characters. When I reduced the number of targets at some point the error disappeared.

After some digging I found out that this only happens when running elm-watch hot inside a yarn/npm script. When you run elm-watch hot directly from the command line it is not a problem.

  • elm-watch hot
  • node myscript.js -> elmWatch(["hot"])
  • npx/yarn elm-watch hot
  • npm/yarn run my-script -> elm-watch hot
  • npm/yarn run my-script -> node myscript.js -> elmWatch(["hot"])

I'm not sure if this is actually an elm-watch issue. But it's quite inconvenient if you can not use npm/yarn to run elm-watch.

One thing that would help might be to use relative paths in the elm make command above. That would shorten the command line a lot and make it less likely that this issue occurs.

Tested on Windows command line with version 1.1.2 and 2.0.0-beta.2.