我正在使用最新最好的webpack 2版本进行一些测试,并在尝试将jQuery 3.1.1作为依赖项导入时遇到了问题。
我只是使用import {$} from 'jquery';
导入,但生成的包在执行时生成异常TypeError: __webpack_require__.i(...) is not a function
。
使用const $ = require('jquery');
按预期工作。
据我所知,使用webpack 2我可以独立于库的格式使用es6导入(几乎)。
webpack.config.js:
'use strict';
const path = require('path');
const webpack = require('webpack');
function config(env) {
const PRODUCTION = env && typeof env.production !== 'undefined';
const PLUGINS = [
new webpack.DefinePlugin({
DEVELOPMENT: JSON.stringify(!PRODUCTION),
PRODUCTION: JSON.stringify(PRODUCTION)
})
];
if (PRODUCTION) {
PLUGINS.push(new webpack.optimize.UglifyJsPlugin({
sourceMap: true,
compress: {
dead_code: true,
unused: true,
}
}));
}
return {
entry: {
index: './src/index.js'
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: '[name].js'
},
module: {
rules: [
{
test: /\.js$/i,
include: /src/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
options: {
compact: false,
presets: [['es2015', {modules: false}]]
}
}
]
}
]
},
plugins: PLUGINS,
devtool: 'source-map'
};
}
module.exports = config;
两个问题:
TypeError: __webpack_require__.i(...) is not a function
通常表示什么错误?答案 0 :(得分:2)
我的错误:我使用了命名导入而不是默认导入。
<强>正确:强>
import $ from 'jquery';
<强>错误:强>
import {$} from 'jquery';