Open shaozj opened 7 years ago
学习了,给楼主点个赞!
谢谢了,真的很有帮助。
good
Good!
npm run dev 出现了这个问题 Refused to apply inline style because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-cEmJ9wfQpnZLR35+jGeZk1WmknBbXo0CyiXREeJHUGo='), or a nonce ('nonce-...') is required to enable inline execution. Note also that 'style-src' was not explicitly set, so 'default-src' is used as a fallback.
get
是否遇到多次运行会重复插入script 脚本情况呢
目标:
配置文件编写(webpack.config.js)
示例:
Webpack的配置主要包括以下几大项目:
entry:js入口源文件
多入口配置
例子:
output:生成文件
output参数是个对象,定义了输出文件的位置及名字.
例子:
module:模块加载器
在webpack中JavaScript,CSS,LESS,TypeScript,JSX,CoffeeScript,图片等静态文件都是模块,不同模块的加载是通过模块加载器(webpack-loader)来统一管理的。loaders之间是可以串联的,一个加载器的输出可以作为下一个加载器的输入,最终返回到JavaScript上。
例子:
多个loader可以用在同一个文件上并且被链式调用。链式调用时从右到左执行且loader之间用“!”来分割。
模块加载器(loader)自身可以根据传入不同的参数进行配置。
resolve:文件路径的指向
webpack在构建包的时候会按目录的进行文件的查找,resolve属性中的extensions数组中用于配置程序可以自行补全哪些文件后缀:
例子:
plugins:插件,比loader更强大,能使用更多webpack的api
插件一般都是用于输出bundle的node模块。例如,uglifyJSPlugin获取bundle.js然后压缩和混淆内容以减小文件体积。类似的extract-text-webpack-plugin内部使用css-loader和style-loader来收集所有的css到一个地方最终将结果提取结果到一个独立的”styles.css“文件,并且在html里边引用style.css文件。
例子:
code-splitting 插件CommonsChunkPlugin
将多次引用的模块单独打包
多页面 html 生成插件 html-webpack-plugin
例子:
src目录下有个template.html文件,无需引入任何css和js,webpack会自动帮我们打包引入,
<%= htmlWebpackPlugin.options.title %>
读取配置好的页面标题最终通过打包,会生成对应入口的html文件, 比如src/view/index/index.js会生成view/index/index.html
你会发现相关资源文件都自动引入了,十分便捷。
webpack 常用命令
webpack dev server
配置示例:
用处
配置
Content Base
webpack-dev-server --content-base build/
webpack 配置
publicPath
自动更新和热替换
配置:
关键配置:
config.entry.app.unshift("webpack-dev-server/client?http://localhost:8080/", "webpack/hot/dev-server");
在每个入口文件注入 client websocket 热加载脚本。
参考文档:
webpack 多页面构建
webpack react generator
webpack 构建优化
webpack-dev-server
多入口以及code-splitting
webpack 配置
16.详解前端模块化工具-Webpack 不错的文章
webpack CommonsChunkPlugin详细教程
18.webpack CommonsChunkPlugin详细教程