当前位置: 首页 > news >正文

怎么做百度自己的网站空间东莞哪些地方是风险区

怎么做百度自己的网站空间,东莞哪些地方是风险区,爱网盘,采集做网站常用 loader loader 是辅助打包工具。webpack 默认只能打包 js 文件#xff0c;打包其它模块就需要配置 loader 来告诉 webpack 该怎么去打包其它文件。loader 可以将文件从不同的语言转换为 JavaScript。一类文件如果需要多个 loader 处理#xff0c;loader 的执行顺序是从…常用 loader loader 是辅助打包工具。webpack 默认只能打包 js 文件打包其它模块就需要配置 loader 来告诉 webpack 该怎么去打包其它文件。loader 可以将文件从不同的语言转换为 JavaScript。一类文件如果需要多个 loader 处理loader 的执行顺序是从后往前。 打包样式文件 打包 css css 文件需要先用 css-loader 处理再用 style-loader 插入 style/style标签中。 安装 css-loader、style-loader yarn add css-loader style-loader --savemodule.exports {module: {rules: [{test: /\.css$/,use: [// 再用 style-loader 创建 style 标签插入 head/head 标签中style-loader,// css 文件需要先用 css-loader 处理将 css 编译成 commonjs 整合到 js 中css-loader]}]} };// 使用 localIdentName 自定义生成的样式名称格式可选的参数有 // [path] 表示样式表相对于项目根目录所在路径 // [name] 表示样式表文件名称 // [local] 表示样式的类名定义名称 // [hash:length] 表示32位的hash值 module.exports {module: {rules: [{test: /\.css$/,use: [style-loader,{loader: css-loader,options: {modules: {localIdentName: [path][name]-[local]}}}]}]} };// index.js import add from utils/add; import ./css/style.css;// import styles from ./css/style.css; // console.log(styles);console.log(add(1, 4));!-- index.html -- !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head bodyh1 classtitlehello webpack5/h1 /body /html样式兼容性处理 postcss-loader 自动添加浏览器前缀。 使用 autofixer 插件辅助 autoprefixer 可以指定需要兼容的浏览器。 安装 postcss-loader、autofixer yarn add postcss-loader autoprefixer --save// 通过配置加载指定的 css 兼容性样式 // postcss-loader 在 css-loader 之前调用 module.exports {module: {rules: [{test: /\.scss$/,use: [style-loader,css-loader,{loader: postcss-loader,options: {postcssOptions: {plugins: [[autoprefixer, {// options// 直接在这里指定浏览器版本overrideBrowsersList: [last 5 versions]}]]}}},sass-loader]}]} };使用 postcss-preset-env 插件辅助 postcss-preset-env 插件可以指定需要添加的浏览器。 安装 postcss-loader、postcss-preset-env yarn add postcss-loader postcss-prest-env --save// 通过配置加载指定的css兼容性样式 module.exports {module: {rules: [{test: /\.scss$/,use: [style-loader,css-loader,{loader: postcss-loader,options: {postcssOptions: {plugins: [[postcss-preset-env,{// Optionsbrowserslist: {development: [// 兼容最近的一个 chrome 的版本last 1 chrome version,last 1 firefox version,last 1 safari version,],production: [// 大于 99.8% 的浏览器0.2%,// 不要已经死了的浏览器比如 IE10兼容没有意义not dead,// op_mini 的浏览器全都死亡了not op_mini all]}},]]}}},sass-loader]},{test: /\.scss$/,use: [style-loader,css-loader,{loader: postcss-loader,// 写法二options: {ident: postcss,plugins: [require(postcss-preset-env)()]}},sass-loader]}]} };打包 less 安装 less、less-loader、css-loader、style-loader yarn add less less-loader css-loader style-loader --savemodule.exports {module: {rules: [// less-loader 是基于 less 的所以使用 less-loader 需要同时安装 less{test: /\.less$/,use: [style-loader,css-loader,less-loader]}]} }; 打包 sass 安装 sass、sass-loader、css-loader、style-loader yarn add sass sass-loader css-loader style-loader --savemodule.exports {module: {rules: [// sass-loader 是基于 sass 的所以使用 sass-loader 需要同时安装 sass{test: /\.scss$/,use: [style-loader,css-loader,postcss-loader,sass-loader]}]} };打包 styl 安装 stylus-loader、style-loader、css-loader yarn add stylus-loader css-loader style-loadermodule.exports {module: {rules: [{test: /\.scss$/,use: [style-loader,css-loader,postcss-loader,stylus-loader]}]} };打包图片、字体等静态资源 打包图片 webpack4 需要使用url-loader和file-loaderwebpack5 已内置使用模块 asset。 asset/resource 使用 asset/resource 处理的资源会输出到目录中采用哈希命名file-loader 在 webpack5 中已被 asset/resource 替代。 module.exports {module: {rules: [{test: /\.(png|jpeg|gif|PNG)$/,type: asset/resource}]} };const path require(path);module.exports {output: {// ...// 指定所有 assetModule 文件的输出目录同时重命名输出的文件名称// assetModuleFilename: static/[hash][ext][query]},module: {rules: [{test: /\.(png|jpg|jpeg|gif|PNG)$/,type: asset/resource,generator: {// 与 assetModuleFilename 只取其一// 输出图片的名称filename: images/[hash:8][ext][query]}}]}, };asset/inline url-loader 在 webpack5 中已被 asset/inline 替换。打包输出的数据 URI 使用 Base64 算法编码的文件内容可以减少 http 请求数量但是体积会变大 module.exports {module: {rules: [{test: /\.(png|jpg|jpeg|gif|PNG)$/,type: asset/inline}]} };asset module.exports {module: {output: {// ...// 指定 assetModule 文件的输出目录同时重命名输出的文件名称// assetModuleFilename: images/[hash:8][ext][query]},rules: [{test: /\.(png|jpeg|gif|PNG)$/,type: asset,parser: {// 自定义转 base64 的界限dataUrlCondition: {// 小于 10kb 的图片转 base64maxSize: 10 * 1024 // 10kb}},generator: {// 跟 assetModuleFilename 之中选一个即可// 输出图片的名称filename: images/[hash:8][ext][query]}}]} };打包字体图标资源 module.exports {module: {output: {// ...// 指定图片文件的输出目录同时重命名输出的文件名称// assetModuleFilename: fonts/[hash:8][ext][query]},rules: [{test: /\.(ttf|otf|woff2?)$/,type: asset,generator: {// 跟 assetModuleFilename 之中选一个即可// 输出文件的名称filename: fonts/[hash:8][ext][query]}}]} };打包其他资源 module.exports {module: {output: {// ...// 指定图片文件的输出目录同时重命名输出的文件名称// assetModuleFilename: media/[hash:8][ext][query]},rules: [{test: /\.(mp3|mp4|avi|excel)$/,type: asset,generator: {// 跟 assetModuleFilename 之中选一个即可// 输出文件的名称filename: media/[hash:8][ext][query]}}]} };js 兼容性处理 因为不是所有浏览器都能识别 es6 语法所以需要通过 babel 进行转换将 es6 语法转换成所有浏览器都可以识别的 es5 语法。 使用最新版本 babel 最新版本 babel 已支持转换 generator 函数以及最新的 es6 语法。 安装 babel-loader、babel/core、babel/preset-env yarn add babel-loader babel/core babel/preset-env -Dmodule.exports {module: {rules: [{test: /\.js$/,loader: babel-loader,exclude: /mode_modules/}]} };// 新建 .babelrc 文件 {presets: [babel/preset-env],plugins: [] }转换 jsx 语法 使用 babel/preset-react或者使用 babel/preset-env 、 babel/react 方法一安装 babel/preset-env 、 babel/react {presets: [babel/preset-env,babel/react],plugins: [] }方法二安装 babel/preset-react {presets: [babel/preset-react],plugins: [] }使用低版本 babel 转换基本语法 安装 babel-loader、babel/core、babel/preset-env module.exports {module: {rules: [{test: /\.js$/,loader: babel-loader,exclude: /mode_modules/,// 第一种配置在这里通过 options 配置预设options: {// 预设指示babel做什么样的兼容性处理presets: babel/preset-env}}]} };// 第二种配置新建 .babelrc 文件 {presets: [babel/preset-env],plugins: [] }babel/preset-env 不能转换所有的 es6 语法比如 async await 、generator 函数只能转换基本语法最新版本的已支持如要测试请使用低版本 babel。 babel/pollyfill babel/pollyfill 相当于 babel 的补丁使用 babel/pollyfill 可以转换所有语法。 babel/pollyfill 是 core-js 和 generator 的集合推荐单独安装 core-js 和 generator 因为babel/pollyfill 会污染全局变量 babel/pollyfill 在 babel 7.4.0 以后已被弃用如果想测试需要安装低版本 babel 测试。 引入 babel/pollyfill 可以做 js 全部兼容性处理 会将所有的兼容性代码全部引入体积太大而且会污染全局变量 // 在需要处理的文件中通过 import 引入 import babel/pollyfill;按需加载 使用 core-js 可以解决 babel/pollyfill 全部引入导致体积太大的问题。core-js 和 babel/pollyfill 不能同时使用只安装一个即可 babel/pollyfill 内置有 core-js。 安装 core-js // .babelrc {presets: [[babel/preset-env,{// 按需加载useBuiltIns: usage,// 指定 core-js 版本corejs: 3}]],plugins: [] }babel-runtime babel-runtime 可以解决 babel/pollyfill 污染全局变量的问题。 安装 babel/plugin-transform-runtime、babel/runtime yarn add babel/plugin-transform-runtime -D yarn add babel/runtime --save// .babelrc {presets: [[babel/preset-env,{// 按需加载useBuiltIns: usage,// 指定 core-js 版本corejs: 3}]],plugins: [[babel/plugin-transform-runtime,{absoluteRuntime: false,corejs: 3,helpers: true,regenerator: true,useESModules: false}]] }eslint 语法检查 安装 eslint、eslint-webpack-plugin yarn add eslint eslint-webpack-plugin -Dconst EslintPlugin require(eslint-webpack-plugin);module.exports {plugins: [new EslintPlugin({context: path.resolve(__dirname, src), // 需要检测的根目录exclude: node_modules, // 需要排除的目录extensions: [js], // 需要检查的文件类型fix: true // 自动修复})] };eslint 规则配置 参考 https://eslint.cn/docs/rules/ // .eslintrc.js module.exports {root: true,env: {browser: true,node: true},extends: [eslint:recommended],rules: {no-console: [warn, { allow: [warn, error] }],block-spacing: [2, always],brace-style: [2, 1tbs, { allowSingleLine: true }],jsx-quotes: [2, prefer-single],quotes: [2,single,{avoidEscape: true,allowTemplateLiterals: true}],semi-spacing: [2,{before: false,after: true}],space-in-parens: [2, never],space-infix-ops: error,space-unary-ops: error,indent: 0,semi: error,comma-spacing: 0,space-before-blocks: 0,keyword-spacing: 0,key-spacing: [error, { afterColon: true }],no-multiple-empty-lines: 0,spaced-comment: [error,always,{line: {markers: [/],exceptions: [-, ]},block: {markers: [!],exceptions: [*],balanced: true}}],space-before-function-paren: 0,arrow-spacing: error,object-curly-spacing: 0,one-var-declaration-per-line: [error, always],array-bracket-newline: [error, consistent],no-lonely-if: error,object-curly-newline: [error,{ObjectPattern: { multiline: true },ImportDeclaration: { multiline: true },ExportDeclaration: { multiline: true }}],object-property-newline: [error, { allowAllPropertiesOnSameLine: false }],padding-line-between-statements: [error,{blankLine: always,prev: [const, let, var],next: *},{blankLine: any,prev: [const, let, var],next: [const, let, var]}],semi-style: [error, last],switch-colon-spacing: error,wrap-regex: error,default-case: error,guard-for-in: error,no-else-return: error,no-empty-function: error,no-new-func: error,no-useless-return: error,symbol-description: error,array-element-newline: [error, consistent, { multiline: true }],no-var: error,one-var: [error, consecutive],no-case-declarations: 0} };// .eslintignore // 需要忽略 eslint 检查的文件/.idea/* /node_modules/* /.eslintrc.js static/fonts/* /yarn.lock /yarn-error.log /.gitignore airbnb 规则 使用 airbnb 规则如果不想自己一个个配置 eslint rules, 推荐使用 airbnb 规则需要用 eslint-config-airbnb-base 库。 yarn add eslint eslint-config-airbnb-base eslint-plugin-import -D// 还需要在 package.json 中配置 {eslintConfig: {extends: airbnb-base} }babel/eslint-parser 使用 babel/eslint-parser 可以帮助你在使用 Babel 转换代码时避免 ESLint 中的语法错误。同时它也可以在您的代码中使用一些 Babel 特有的语法如 jsx 和 decorators时帮助 ESLint 正确解析和检查代码。 安装 eslint、babel/core、babe:/eslint-parser yarn add eslint babel/eslint-parser -D yarn add babel/core --savemodule.exports {root: true,env: {browser: true,node: true},extends: [eslint:recommended],parserOptions: {parser: babel/eslint-parser,sourceType: module,ecmaVersion: 6,ecmaFeatures: {jsx: true,experimentalObjectRestSpread: true}},rules: {// ...}, };常用插件 生成 html 文件 安装 html-webpack-plugin yarn add html-webpack-pluginhtml-webpack-plugin 默认会创建一个没有任何结构样式的 html 文件会自动引入打包输出的所有资源。 但是我们需要有结构的 html 文件所以需要再配置 options。 // 引入插件 const HtmlWebpackPlugin require(html-webpack-plugin);// 不传参数默认生成一个 index.html 文件并且将打包后输出的所有资源插入 index.html 中 module.exports {plugins: [new HtmlWebpackPlugin()] };// 传参数 const path require(path);module.exports {plugins: [new HtmlWebpackPlugin({// 指定要生成的 html 模板文件生成的 index.html 内容跟 /src/index.html 相同并且会自动引入打包后输出的所有资源template: path.resovle(__dirname, src/index.html),filename: other.html // 指定生成的 html 文件名})] };提取 css 为单独文件 安装 mini-css-extract-plugin yarn add mini-css-extract-plugin使用 mini-css-extract-plugin 可以将打包后的 css 文件以 link 的方式插入 html 中 const MiniCssExtractPlugin require(mini-css-extract-plugin);module.exports {module: {rules: [{test: /\.css$/,use: [// 将 style-loader 换成 MiniCssExtractPlugin 内置的loader// 从而将提取出的 css 文件以 link 的方式插入 html 中MiniCssExtractPlugin.loader,css-loader,postcss-loader]}]},plugins: [// 默认输出到 output 指定目录下和 js 平级main.cssnew MiniCssExtractPlugin({// 可以通过参数指定打包后的路径和文件名输出为 output 指定目录下的 /css/style.cssfilename: css/style.css})] };压缩 js mode: production 自动压缩 jsmode: development 设置 minimize: true 可压缩 module.exports {mode: production, };module.exports {mode: development,optimization: {minimize: true} };如果使用了 css-minimizer-webpack-plugin 压缩 css那么 js 压缩会失效需要手动安装 terser-webpack-plugin 插件 yarn add terser-webpack-pluginconst MiniCssExtractPlugin require(mini-css-extract-plugin); const CssMinimizerWebpackPlugin require(css-minimizer-webpack-plugin); const TerserWebpackPlugin require(terser-webpack-plugin);module.exports {mode: development,module: {rules: [{test: /\.css$/,use: [MiniCssExtractPlugin.loader,css-loader,postcss-loader]}]},optimization: {minimize: true,minimizer: [// 压缩 js解决压缩 css 导致压缩 js 失效的问题new TerserWebpackPlugin(),// 压缩 cssnew CssMinimizerWebpackPlugin(),],},plugins: [new MiniCssExtractPlugin({filename: css/style.css})] };压缩 css 安装 css-minimizer-webpack-plugin yarn add css-minimizer-webpack-plugincss-minimizer-webpack-plugin 必须要配合 mini-css-extract-plugin 使用只能对单独的 css 文件进行压缩只在 mode: production‘ 有效如果希望在 mode: developmemt‘ 有效需要设置 minimize: true const MiniCssExtractPlugin require(mini-css-extract-plugin); const CssMinimizerWebpackPlugin require(css-minimizer-webpack-plugin);module.exports {mode: production,module: {rules: [{test: /\.css$/,use: [MiniCssExtractPlugin.loader,css-loader,postcss-loader]}]},optimization: {minimizer: [// 压缩 cssnew CssMinimizerWebpackPlugin(),],},plugins: [new MiniCssExtractPlugin({filename: css/style.css})] };const MiniCssExtractPlugin require(mini-css-extract-plugin); const CssMinimizerWebpackPlugin require(css-minimizer-webpack-plugin);module.exports {mode: development,module: {rules: [{test: /\.css$/,use: [MiniCssExtractPlugin.loader,css-loader,postcss-loader]}]},optimization: {minimize: true,minimizer: [// 压缩 cssnew CssMinimizerWebpackPlugin(),],},plugins: [new MiniCssExtractPlugin({filename: css/style.css})] };压缩 html 文件 html-webpack-plugin module.exports {plugins: [new HtmlWebpackPlugin({// 配置 minify 属性进行压缩minify: {collapseWhitespace: true, // 移除空行removeComments: true // 移除注释}})] };html-minimizer-webpack-plugin const HtmlMinimizerWebpackPlugin require(html-minimizer-webpack-plugin);module.exports {mode: production,plugins: [// 压缩 htmlnew HtmlMinimizerWebpackPlugin()] };const HtmlMinimizerWebpackPlugin require(html-minimizer-webpack-plugin);module.exports {mode: development,optimization: {minimize: true},plugins: [// 压缩 htmlnew HtmlMinimizerWebpackPlugin()] };其他插件 copy-webpack-plugin yarn add copy-webpack-plugin拷贝文件而是用来复制源代码中已经存在的文件比如一些静态资源拷贝到指定的地方去并不是用来复制打包生成的文件。比如有一些全局的配置直接拷贝到目标文件夹下去后续这些全局配置文件内容有改变就不需要重新打包可以直接替换部署的文件 const CopyPlugin require(copy-webpack-plugin);module.exports {plugins: [new CopyPlugin({patterns: [{ from: path.resolve(__dirname, src, static), to: public }]})] };
http://www.zqtcl.cn/news/334231/

相关文章:

  • 绍兴做网站价格字体
  • asp.net网站开发实训可以不花钱做网站吗
  • 北京网站的制作设计服务器和电脑主机的区别
  • 北京网站建设的服务公司凡科网站 怎么开支付
  • 包头公司做网站知名做网站费用
  • 安徽网站建设服务平台重庆网站建公司大全
  • 有什么网站可以做中间人的相城区建设局网站
  • 房屋装修在线设计网站百度联盟广告怎么屏蔽
  • 网站,商城,app+建设域名网址注册
  • 肥西做网站设计网页页面
  • 怎样做百度推广网站iis服务器的默认网站
  • 东莞建设工程交易中心门户网站湖南设计网站机构
  • 做网站在网站建设客户
  • 河北建设厅安监站官方网站一个新手怎么做电商
  • 做结婚请柬网站有那些做网店哪个网站好
  • 做网站尽在美橙互联欧美简约风格网站设计
  • idea建设完整的网站微官网下载
  • 阿城区建设小学网站上海建设行政主管部门政务网站
  • 西丽网站建设网站怎样做才能有点击率
  • 网站建设图片大小建设部网站1667号公告
  • 做wps的网站赚钱网站建设中网站图片如何修改
  • 公司招商型网站建设怎么自己做网站挣钱
  • 红酒手机网站建设中视频自媒体注册
  • 免费网站2022年能用的网址青阳网站建设
  • 网站建设的开发方式知乎科技部网站建设合同范本
  • 兰州市建设厅官方网站做酒店的网站
  • 宠物店网站开发文档撰写洛阳市河阳建设工程有限公司网站
  • 毕业设计做网站应该学什么wordpress调用子分类
  • 怎么建网站做淘宝客用国外网站 图片做自媒体
  • 汕头建站模板搭建怎么制作有效网站