Webpack: как создать файлы браузера для ES5 и файлы сервера для Node: актуально - PullRequest
0 голосов
/ 11 февраля 2020

Я очень новичок в Webpack. Моя новая команда использует его, и я никогда не использовал его раньше.

Мы создаем как комплект браузера, так и комплект сервера.

Мы используем Webpack версии 4.41.2

Пакет браузера ДОЛЖЕН переноситься на ES5.

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

в нашем пакете. json у нас есть два скрипта:

    "build:browser": "webpack --config ./webpack/browser.babel.js",
    "build:server": "webpack --config ./webpack/server.babel.js",

Файл browser.babel.js у нас есть:

  module: {
    rules: base.module.rules.concat([
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: "babel-loader"
      },

То же самое есть в файле server.babel.js.

Я предполагаю, что оба они используют файл .babelrc по умолчанию, который гласит:

  "presets": ["@babel/preset-env"],

Но для отключения транспиляции Мне нужно было изменить это на:

  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ]
  ],

Мой вопрос: как мне настроить сборку сервера на использование настроек, которые будут препятствовать переносу, и заставить сборку браузера использовать настройку, которая будет переноситься?

Есть ли способ указать другой .bablerc файл?

Есть ли способ указать настройки внутри server.babel.js файла?

Нужно ли обновлять до более новая версия Webpack?

Есть ли что-то еще, что мне нужно сделать?

Любая помощь очень ценится !!

Ответы [ 2 ]

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

в server.babel.js, вы можете передать опции в babel-loader. Вы можете указать конкретный c файл конфигурации: https://babeljs.io/docs/en/options#configfile, вы также можете установить babelrc: false

module: {
  rules: [
    {
      test: /\.js$/,
      exclude: /node_modules/,
      use: {
        loader: 'babel-loader',
        options: {
          // set overrides here
        }
      }
    }
  ]
}
0 голосов
/ 25 февраля 2020

Вам вообще не нужно передавать серверную сборку через babel.

Поскольку его не нужно переносить, вы можете оставить его вне сценария конфигурации webpack для этой сборки.

...