3.5 KiB
3.5 KiB
基本参数
- 入口(entry)
- 输出(output)
- loader
- 插件(plugin)
- 模式(mode)
- 浏览器兼容性(browser compatibility)
- 环境(environment)
默认配置
- 入口起点为
src/index.js
- 然后会在
dist/main.js
输出结果 - 并且在生产环境开启压缩和优化
- 通常你的项目还需要继续扩展此能力,为此你可以在项目根目录下创建一个
webpack.config.js
文件,然后 webpack 会自动使用它。
“webpack 配置的可扩展” 是指,这些配置可以重复使用,并且可以与其他配置组合使用。这是一种流行的技术,用于将关注点从环境(environment)、构建目标(build target)、运行时(runtime)中分离。然后使用专门的工具(如 webpack-merge)将它们合并起来。
- 使用 JavaScript 控制流表达式,例如
?:
操作符 - 精心编写的 模块 提供了可靠的抽象和封装界限,使得应用程序中每个模块都具备了条理清晰的设计和明确的目的。
- 应保证 loader 的先后顺序:
'style-loader'
在前,而'css-loader'
在后
基础文件
- index.html是主入口
- app.js是我们写的模块,并依据CommonJS规范导出这个模块
- main.js其实是一个组件,它的目的是将我们写的一些代码模块返回并插入到页面中
不兼容问题升级
npm i -D html-webpack-plugin@webpack-contrib/html-webpack-plugin
临时删除一些错误包
"eslint-loader": "^2.0.0",
"element-ui": "^2.15.7",
"less-loader": "6.0.0",
"jest": "^27.4.5",
"jest-serializer-vue": "^0.3.0",
"babel-jest": "^27.4.5",
"vue-jest": "^1.0.2",
"friendly-errors-webpack-plugin": "2.0.0-beta.2",
"uglifyjs-webpack-plugin": "2.2.0",
"babel-plugin-transform-runtime": "^7.14.0",
"@babel/core": "^7.12.3",
"@babel/plugin-transform-runtime": "7.12.13",
"@babel/preset-env": "^7.16.7",
"babel-eslint": "^10.0.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-plugin-dynamic-import-node": "^1.2.0",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-es2015-modules-commonjs": "^6.26.0",
"babel-plugin-transform-vue-jsx": "4.0.1",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"@babel/preset-env":"7.16.7"
"babel-plugin-react-intl": "^8.2.15",
npm instal babel-preset-env
npm install babel-preset-stage-2
"babel-plugin-transform-runtime": "^6.23.0",
"babel-plugin-transform-vue-jsx": "^4.0.1",
"babel-preset-env": "^1.7.0",
"babel-preset-stage-2": "^6.24.1",
-----------------------------------
"@babel/core": "^7.16.7",
"@babel/preset-env": "^7.16.7",
"babel-loader": "^8.2.3",
"babel-preset-stage-2": "7.0.0-beta.3",
"babel-runtime": "6.26.0",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-plugin-transform-vue-jsx": "^3.7.0",
"babel-preset-env": "^1.7.0",
"@babel/preset-stage-2": "^7.8.3",
TypeError: src/main.js: this.setDynamic is not a function