Есть ли способ настроить Babel для непрерывной транспортировки и / или минимизации папки sr c в скомпилированную папку? - PullRequest
0 голосов
/ 23 февраля 2020

Начиная с пустой директории, возможно ли это сделать? Должен ли я использовать stage-0, как на Babel REPL ?

Я надеюсь перенести его так же, как ReactJS. По какой-то причине я всегда получаю сообщение об ошибке только для файла, содержащего:

let obj = { a: 1 };

let newObj = {
    ...obj,
    ha: 3
};

В других случаях я могу перенести файл, но если я перенесу папку, он скажет:

foo.js: Cannot read property 'contexts' of null

Команды, которые я попробовал, включали:

npx babel src --out-dir compiled --presets=es2015,react,minify --watch

, но появились ошибки, о которых я упоминал выше. Кроме того, когда я делаю

npm install babel-minify 

, он сообщает

found 2489 vulnerabilities (849 low, 306 moderate, 1329 high, 5 critical)

Также появляется уведомление

Начиная с v7.0.0-beta.55, мы удалены предустановки Babel's Stage. Пожалуйста, ознакомьтесь с нашим сообщением в блоге об этом решении в https://babeljs.io/blog/2018/07/27/removing-babels-stage-presets для получения более подробной информации. TL; DR состоит в том, что в конечном итоге выгоднее явно добавить, какие предложения использовать.

, и мне интересно, что нужно сделать.

Возможно ли

  1. просто непрерывно минимизируйте папку
  2. для переноса некоторых синтаксисов ES6 или ES7, 8, которые пока еще не поддерживаются
  3. также переносят JSX

1 Ответ

0 голосов
/ 23 февраля 2020

Я нашел несколько надежных способов заставить его работать, хотя я не уверен, когда мне следует использовать babel.config.json, а когда .babelrc.json или .babelrc. Кажется, мне нужно запустить babel как ./node_modules/.bin/babel, и это правда, если я не npm install babel, используя опцию -g.

Вот что работает:

  1. создайте папку, например TryBabel
  2. cd TryBabel
  3. Go до https://babeljs.io/setup.html и нажмите «CLI»
  4. Вам нужно a package.json, поэтому используйте npm init и просто нажмите Enter несколько раз
  5. Это должно привести к установке
    a. npm install --save-dev @babel/core @babel/cli
    б. теперь посмотри на свои package.json. Удалите script about test, но используйте это: "build": "babel src -d lib"
  6. Теперь npm run build или ./node_modules/.bin/babel src -d lib должны работать, но убедитесь, что у вас есть .js файлы в папке src. Полученный результат будет находиться в папке lib.
  7. Теперь, чтобы перенести вещи в «pre ES6», просто следуйте инструкциям @babel/preset-env:
    a. npm install @babel/preset-env --save-dev
    б. сделайте так, чтобы babel.config.json содержал { "presets": ["@babel/preset-env"] }

Теперь вы можете использовать npm run build для переноса один раз, или ./node_modules/.bin/babel src -d lib --watch, чтобы продолжить его запуск и "смотреть" папку src и переносить файлы в нем при изменении файлов.

Чтобы минифицировать или заставить его работать с JSX / React, см.

https://babeljs.io/docs/en/babel-preset-minify и https://babeljs.io/docs/en/babel-preset-react

и убедитесь, что ваш babel.config.json файл выглядит следующим образом:

{
  "presets": [

    [
      "@babel/preset-env",
      {
        "useBuiltIns": "entry"
      }
    ],
    ["@babel/preset-react"],
    ["minify"]
  ]
}

и удалите minify, если вы не хотите, чтобы код был минимизирован.

...