【新手】webpack代码分割问题
如题,在index.js引入jquery 之后,使用代码分割时,会将jQuery分割出来,导致页面本来呈现天蓝渐变的不见了。
问:代码分割后,是需要把分割出来的vendors~index.js再次引入吗?
package.json
{
"name": "webpack4",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "webpack --mode development",
"build": "webpack --mode production",
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.7.2",
"@babel/plugin-transform-runtime": "^7.6.2",
"@babel/preset-env": "^7.7.1",
"babel-loader": "^8.0.6",
"clean-webpack-plugin": "^3.0.0",
"webpack": "^4.29.6",
"webpack-cli": "^3.2.3"
},
"dependencies": {
"@babel/polyfill": "^7.7.0",
"@babel/runtime": "^7.7.2",
"jquery": "^3.4.1"
}
}
webpack.config.js
const path = require('path')
// 打包时 先删除 dist 文件,再打包
const { CleanWebpackPlugin } = require('clean-webpack-plugin')
module.exports = {
entry: {
app: './src/app.js', //需要打包的文件入口
index: './src/index.js'
},
output: {
publicPath: __dirname + '/dist/',//js 引用的路径或者CDN 地址
path: path.resolve(__dirname, 'dist'), // 打包文件的输出目录
filename: '[name].bundle.js', //代码打包后生产的 js 文件
chunkFilename: '[name].js', // 代码拆分后的文件名
},
plugins: [
new CleanWebpackPlugin() // 默认情况下,此插件将删除 webpack output.path目录中的所有文件,以及每次成功重建后所有未使用的 webpack 资产。
],
module: {
rules: [
{
test: /\.js$/, //使用正则匹配 js 文件
exclude: /node_modules/, //排除依赖包文件夹
use: {
loader: 'babel-loader' // 使用 babel-loader
}
}
]
},
optimization: {
splitChunks: {
chunks: 'all', //all分割所有代码,包括initial同步代码和async异步代码
}
}
}
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script src="../dist/index.bundle.js"></script>
</body>
</html>
index.js
import jquery from 'jquery'
window.$ = window.jQuery = jquery;
$('html').css({
width: '100%',
height: '100%',
background: 'linear-gradient(white,skyblue)'
})
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)