Запустить задачу grunt с аргументами node.js в Windows

Я столкнулся с ошибкой нехватки памяти при запуске grunt babel. На Mac это решается увеличением max-old-space-size. Однако некоторые из наших разработчиков работают на машинах с Windows, и я не нашел способа сделать это на Windows.

Чему равен:

node --max-old-space-size=10000 node_modules/.bin/grunt babel

на окнах?

Или есть универсальная команда, которая работает на обоих?

Мои зависимости:

"@babel/core": "^7.1.5",
"@babel/preset-env": "^7.1.5",
"grunt-babel": "^8.0.0",
"grunt": "^0.4.5",
"grunt-cli": "^1.3.1",
My babel config in gruntfile.js

Моя конфигурация babel в gruntfile.

babel: {
  options: {
    compact: true,
    presets: ['@babel/preset-env'],
    sourceMap: true,
    inputSourceMap: sourceMapInJson)
  },
},

Ошибка, которую я получал на Mac, но все еще продолжаю работать в Windows, не увеличивая max-old-space-size:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Ошибка, которую я получаю в Windows с параметром max-old-space-size:

basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
         ^^^^^^^

SyntaxError: missing ) after argument list

Я знаю, что вы просите именно окна, я не смогу вам с этим помочь. Я просто хотел сказать, что мне приходилось дважды работать с Windows (требования работодателя), и каждый раз мне приходилось настраивать свою собственную среду VirtualBox с Debian / Ubuntu просто для лучшего опыта разработки. Если вы не можете решить свою проблему, возможно, попробуйте запустить свое программное обеспечение в виртуальном боксе или даже в докере, где вы можете использовать Linux в качестве основы, а затем передайте аргумент --max-old-space-size в node. Настройка команды, которая запускает докер и запускает все необходимые инструменты, кажется излишним, но она сработает.

PolishDeveloper 16.11.2018 18:53

Команда не работает в Windows? Кажется, что "работает" как в, команда не выдает ошибку, но вы все равно получаете ошибку при выполнении задачи? Если последнее, просто снимок в темноте, но пробовали ли вы увеличить максимальное значение для окон? Может быть, 10 000 хватило бы на Mac, но не на Windows ...

Kevin LaBranche 16.11.2018 18:55

Вы уверены, что эта команда не работает в Windows? потому что это должно работать. Я думаю, что так же, как @klabranche, попробуйте установить более высокое значение, если это не сработает. Кроме того, из документации вы можете установить ее как переменную ENV и не вводить ее каждый раз. - nodejs.org/api/cli.html#cli_node_options_optionsenv NODE_OPTIONS=--max_old_space_size=4096

Aravind Voggu 16.11.2018 19:00

В Windows команда выдает эту ошибку: basedir = $ (dirname "$ (echo" $ 0 "| sed -e 's, \\, /, g')") ^^^^^^^ SyntaxError: missing) after список аргументов

Waltari 19.11.2018 07:58

Поэтому я не верю, что Windows требует больше памяти. Установка env для команды just кажется излишней.

Waltari 19.11.2018 07:58

Может быть поможет этот плагин: npmjs.com/package/increase-memory-limit

Varit J Patel 20.11.2018 12:15

@Waltari Этот пакет полезен для вас?

Varit J Patel 23.11.2018 08:01

Да, я бы принял это как ответ. В итоге мы включили его в наш проект. :)

Waltari 23.11.2018 13:27
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
8
920
1

Ответы 1

Пакет Npm increase-memory-limit поможет.

этот модуль исправляет нехватку памяти при запуске двоичных файлов узла.

Как упоминалось в его официальном документы

it will append --max-old-space-size=4096 in all node calls inside your node_modules/.bin/* files.

Надеюсь это поможет!

На самом деле это не исправляет в Windows. Несоответствие в общении с моим коллегой.

Waltari 03.12.2018 08:17

Можно попробовать node --max-old-space-size=8192 {name of the file}?

Varit J Patel 03.12.2018 09:17

Другие вопросы по теме