Babel 7 эквивалент Babel-зарегистрироваться? - PullRequest
0 голосов
/ 08 января 2019

Я учусь использовать Webpack 4, создавая шаблон Webpack 4 & Gulp 4. Gulp для обработки Sass и т. Д. И Webpack для обработки JS.

В учебном пособии, которым я следовал, была дана команда для запуска процесса сборки:

NODE_ENV=production gulp build --require babel-register --gulpfile tasks

И это имеет смысл, однако, урок, которому я следовал, содержал Вавилон 6 в примере. Я обновил свой проект до Babel 7, используя @babel/core и @babel/preset-env вместо babel-core и babel-preset-env.

Однако это означает, что часть --require babel-register команды build больше не работает. Какой бы обходной путь заставил Babel 7 скомпилировать мои файлы Gulp / Wepback, чтобы я мог продолжать использовать import gulp from 'gulp'.

Извините за плохую терминологию и плохое объяснение, я так долго был в Gulp 4, это все равно что начинать снова!

1 Ответ

0 голосов
/ 16 апреля 2019

Обновление 17/04/2019

После разветвления и обновления всех пакетов, которые у меня есть, он работает с изменениями, перечисленными в этом запросе

https://github.com/PascalAOMS/gulp4-webpack/pull/1


Оригинальный пост 06/04/2019

Я работаю над тем, что звучит как похожий учебник (https://css -tricks.com / integra-webpack-gulp-4 / , и столкнулся с аналогичной проблемой - в первый раз, когда он запускает импорт Заявление это жалуется.

Я создал свежий репозиторий, чтобы просто заставить работать операторы импорта (на данный момент игнорируя содержимое веб-пакета), и заставил их работать с @ babel / register в этом репозитории , работающем с этой документацией .

Я попытался вставить его в определение сценария узла, используя флаг --require, хотя мне это, похоже, не нравится (я немного поиграюсь), но что заставило его работать для меня

// package.json
{
  ...
  "scripts": {
    "use_import": "gulp --gulpfile tasks"
  },
  "author": "Marc Vousden",
  "license": "MIT",
  "devDependencies": {
    "@babel/core": "^7.4.3",
    "@babel/register": "^7.4.0",
    "@babel/preset-env": "^7.4.3"
    "gulp": "^4.0.0"
  }
}

// index.js
require('@babel/register');

const subtask = require('./subtask').default;

exports.default = (cb)=>{
  console.log("loaded index")
  subtask()
  cb()
}
  • В верхней части gulpfile (в моем случае задачи / индекс) используйте require("@babel/register") Это должно заставить babel обрабатывать другие операторы require, чтобы импорт работал
  • Используйте операторы require для получения сценариев, в которых используются операторы импорта Кажется, что оператор require возвращает объект с парой ключ / значение для экспорта по умолчанию, поэтому мне пришлось вытолкнуть .default в конце

Я все еще работаю над вещами, поэтому я буду обновлять, если у меня будет работать весь процесс, но сейчас он может продвинуть вас чуть дальше.

(также - я совсем забыл добавить файл .babelrc на некоторое время в мою панику)

...