[webpack] use babel to ensure legacy browser compatibility (#645)

This commit is contained in:
Spencer
2018-03-15 14:53:43 -07:00
committed by GitHub
parent f28bbfc349
commit 4be86b402b
5 changed files with 41 additions and 18 deletions

View File

@ -45,10 +45,13 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.0.0-beta.41",
"@babel/preset-env": "^7.0.0-beta.41",
"@spalger/eslint-config-personal": "^0.4.0", "@spalger/eslint-config-personal": "^0.4.0",
"aliasify": "^2.1.0", "aliasify": "^2.1.0",
"async": "~0.8.0", "async": "~0.8.0",
"babel-eslint": "^6.0.4", "babel-eslint": "^8.2.2",
"babel-loader": "^8.0.0-beta",
"blanket": "^1.2.3", "blanket": "^1.2.3",
"bluebird": "^2.9.14", "bluebird": "^2.9.14",
"browserify": "^16.1.1", "browserify": "^16.1.1",
@ -76,7 +79,7 @@
"grunt-prompt": "^1.3.3", "grunt-prompt": "^1.3.3",
"grunt-run": "^0.6.0", "grunt-run": "^0.6.0",
"grunt-saucelabs": "^8.6.2", "grunt-saucelabs": "^8.6.2",
"grunt-webpack": "^1.0.11", "grunt-webpack": "^3.1.1",
"jquery": "^3.3.1", "jquery": "^3.3.1",
"js-yaml": "^3.6.0", "js-yaml": "^3.6.0",
"load-grunt-config": "^0.19.2", "load-grunt-config": "^0.19.2",
@ -94,8 +97,8 @@
"split": "~0.3.2", "split": "~0.3.2",
"through2": "~0.6.3", "through2": "~0.6.3",
"through2-map": "~1.4.0", "through2-map": "~1.4.0",
"webpack": "^1.13.0", "webpack": "^3.10.0",
"webpack-dev-server": "^1.14.1", "webpack-dev-server": "^2.11.1",
"xmlbuilder": "~0.4.3" "xmlbuilder": "~0.4.3"
}, },
"license": "Apache-2.0", "license": "Apache-2.0",
@ -107,6 +110,9 @@
"lodash.isempty": "^4.4.0", "lodash.isempty": "^4.4.0",
"lodash.trimend": "^4.5.1" "lodash.trimend": "^4.5.1"
}, },
"resolutions": {
"grunt-webpack/deep-for-each": "https://github.com/spalger/js-deep-for-each/releases/download/v2.0.2-fix-missing-lodash-dep/deep-for-each-2.0.2.tgz"
},
"repository": { "repository": {
"type": "git", "type": "git",
"url": "http://github.com/elastic/elasticsearch-js.git" "url": "http://github.com/elastic/elasticsearch-js.git"

View File

@ -1,5 +1,5 @@
const DefinePlugin = require('webpack/lib/DefinePlugin') const webpack = require('webpack')
const { ignoreLoader, rel } = require('./lib') const { jsLoader, ignoreLoader, rel } = require('./lib')
module.exports = { module.exports = {
context: rel('src'), context: rel('src'),
@ -9,7 +9,8 @@ module.exports = {
path: rel('dist'), path: rel('dist'),
}, },
module: { module: {
loaders: [ rules: [
jsLoader(),
ignoreLoader([ ignoreLoader([
'src/lib/connectors/jquery.js', 'src/lib/connectors/jquery.js',
'src/lib/connectors/xhr.js', 'src/lib/connectors/xhr.js',
@ -18,7 +19,7 @@ module.exports = {
], ],
}, },
plugins: [ plugins: [
new DefinePlugin({ new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"', 'process.env.NODE_ENV': '"production"',
}), }),
], ],

View File

@ -1,5 +1,5 @@
const DefinePlugin = require('webpack/lib/DefinePlugin') const webpack = require('webpack')
const { ignoreLoader, rel } = require('./lib') const { jsLoader, ignoreLoader, rel } = require('./lib')
module.exports = { module.exports = {
context: rel('src'), context: rel('src'),
@ -11,7 +11,8 @@ module.exports = {
libraryTarget: 'umd' libraryTarget: 'umd'
}, },
module: { module: {
loaders: [ rules: [
jsLoader(),
ignoreLoader([ ignoreLoader([
'src/lib/connectors/jquery.js', 'src/lib/connectors/jquery.js',
'src/lib/connectors/angular.js' 'src/lib/connectors/angular.js'
@ -19,7 +20,7 @@ module.exports = {
], ],
}, },
plugins: [ plugins: [
new DefinePlugin({ new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"', 'process.env.NODE_ENV': '"production"',
}), }),
], ],

View File

@ -1,5 +1,5 @@
const DefinePlugin = require('webpack/lib/DefinePlugin') const webpack = require('webpack')
const { ignoreLoader, rel } = require('./lib') const { jsLoader, ignoreLoader, rel } = require('./lib')
module.exports = { module.exports = {
context: rel('src'), context: rel('src'),
@ -9,7 +9,8 @@ module.exports = {
path: rel('dist'), path: rel('dist'),
}, },
module: { module: {
loaders: [ rules: [
jsLoader(),
ignoreLoader([ ignoreLoader([
'src/lib/connectors/angular.js', 'src/lib/connectors/angular.js',
'src/lib/connectors/xhr.js', 'src/lib/connectors/xhr.js',
@ -18,7 +19,7 @@ module.exports = {
], ],
}, },
plugins: [ plugins: [
new DefinePlugin({ new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"', 'process.env.NODE_ENV': '"production"',
}), }),
], ],

View File

@ -12,9 +12,23 @@ function ignoreLoader(ignores) {
function jsLoader() { function jsLoader() {
return { return {
loader: 'babel-loader',
test: /\.js$/, test: /\.js$/,
include: rel('src'), include: rel('src'),
loader: 'babel-loader',
options: {
babelrc: false,
presets: [
['@babel/preset-env', {
targets: {
browsers: [
'last 2 versions',
'> 5%',
'Safari 7', // for PhantomJS support
]
}
}]
]
}
} }
} }