Как мне скомпилировать несколько файлов, в том числе требовать операторов от ES6 до ES5 - PullRequest
0 голосов
/ 27 июня 2019

У меня есть каталог "Scripts / es6", в котором есть несколько файлов JavaScript.Один из этих файлов требуется другим.Когда я компилирую это из ES6 в один файл ES5, я получаю ошибку в IE11, которая говорит, что 'require' не определена.Я не хочу перечислять каждый файл отдельно в веб-пакете или моем файле package.json, потому что файлы будут часто добавляться в этот каталог.Как мне сделать эту работу?

Я искал много сайтов и использую babel / cli.

Package.json

{
  "name": "RPCS",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "watch": {
    "build": "Scripts/es6/*.js"
  },
  "scripts": {
    "watch": "npm-watch",
    "build": "babel Scripts/es6/ --out-file Scripts/build/bundle.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/cli": "^7.4.4",
    "@babel/core": "^7.4.5",
    "@babel/plugin-proposal-class-properties": "^7.4.4",
    "@babel/preset-env": "^7.4.5",
    "babel-loader": "^8.0.6",
    "babel-polyfill": "^6.26.0",
    "npm-watch": "^0.6.0",
    "webpack": "^4.35.0",
    "webpack-cli": "^3.3.5"
  }
}

Scripts / es6 main.js

import Person from './person';

var person = new Person("David", 30);
person.speak();

Скрипты / es6 / person.js

import Person from './person';

var person = new Person("David", 30);
person.speak();

Скрипты / es6 / test.js

console.log("Test");

babelrc

{ 
  "presets": ["@babel/preset-env"], 
  "plugins": ["@babel/plugin-proposal-class-properties"]
}

webpack.config.js

const path = require('path');

module.exports = {
    entry: ['./Scripts/es6/main.js'],
    output: {
        path: path.resolve(__dirname, './Scripts/build'),
        filename: 'bundle.js'
    },

    module: {
        rules: [{
            test: /\.js$/,
            exclude: /node_modules/,
            use: {
                loader: "babel-loader"
            }
        }]
    }
}

Я хотел бы иметь один вывод файла с именем build / bundle.js, который работает во всех браузерах.

...