我有一个无法在IE11上运行javascript的网站
我是webapck的新手,所以这是我的 webpack.config.js
的一部分const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const CopyWebpackPlugin = require('copy-webpack-plugin')
var babelenv = require('babel-preset-env');
const webpack = require('webpack');
module.exports = {
devtool: "source-map",
mode: 'production',
entry: {
main: "./assets/index.js",
app: [
"./node_modules/bootstrap/dist/js/bootstrap.min.js",
"./node_modules/popper.js/dist/popper.min.js",
"./node_modules/js-cookie/src/js.cookie.js",
"./node_modules/jqueryrouter/dist/js/jquery.router.min.js",
"./assets/js/app.js",
"./node_modules/ekko-lightbox/dist/ekko-lightbox.min.js"
]
catalogue: [
"./assets/js/catalogue.js",
]
},
output: {
path: path.resolve(__dirname, "htdocs/assets"),
filename: "js/[name].js",
publicPath: "/assets/"
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [babelenv]
}
}
},
{
test: /\.s?[c|a]ss$/,
use: [
"style-loader",
MiniCssExtractPlugin.loader,
"css-loader",
"postcss-loader",
"sass-loader"
]
}
]
}
};
.babelrc
{
"presets": [
["env", {
"targets": {
"browsers": ["last 2 versions", "ie >= 11"]
},
"useBuiltIns": true
}],
]
}
我想念的是什么? javascript错误是在简单函数和popper.js中触发的
我不太确定是否正确使用param devtool,是否正确执行.babalrc以及代码是否与ie11兼容
有什么想法吗?
答案 0 :(得分:0)
您缺少babel-polyfill。
答案 1 :(得分:0)
困扰我的是:
rules: [{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: [babelenv]
}
}
},
不幸的是,我不知道您的IE控制台中到底有什么,您的错误消息是什么,但是我有一种直觉,您的node_modules中有一些用ES6编写的包,而您的webpack文件忽略了每个node_module包,并且仅将babel预设应用于您的代码。 如果您可以通过IE控制台向我显示错误消息,则可以提供更多帮助。
如果您设法找到一个给您带来麻烦的软件包,则可以尝试通过以下方式将其包含在babal移植过程中:
{
test: /\.js$/,
exclude: /node_modules\/(?!(your-es6-package|another-package)\/).*/,
use: [
{ loader: 'babel-loader' }
]
}
是的,添加缺少的babel-polyfill也有帮助。