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

牛什么的网站建设成都优化网站关键词

牛什么的网站建设,成都优化网站关键词,万网域名解析平台,中山市城乡建设局网站选用合适的loader来处理不同的资源和不同的功能#xff0c;以下是一些主流的loader#xff0c;但这并不是全部#xff0c;因为每时每刻都可能有新的loader 发布到 npm上 babel-loader babe-loader 用来处理ES6并将其编译为ESS#xff0c;它使我们能够在最新的工程中使用最…选用合适的loader来处理不同的资源和不同的功能以下是一些主流的loader但这并不是全部因为每时每刻都可能有新的loader 发布到 npm上 babel-loader babe-loader 用来处理ES6并将其编译为ESS它使我们能够在最新的工程中使用最新语言特性同时不必特别关注这些特性在不同平台的兼容问题 在安装时推荐使用以下命令: npm install babel-loader babel/core babel/preset-env在配置 babel-loader 时有一些需要注意的地方。请看下面的例子: rules:[ {test: /\.js$/,exclude: /node_modules/,use:(loader: babel-loader,options:{cacheDirectory: truepresets: [[env{modules; false,}]]},), } ],由于babel-loader通常属于对所有JS后缀文件设置的规则所以需要在exclude中添加node_modules否则会令 babel-loader 编译其中所有的模块这将严重拖慢打包的速度并且有可能改变第三方模块的原有行为。 对于babel-loader本身我们添加了cacheDirectory 配置项它会启用缓存机制在重复打包未改变过的模块时防止二次编译同样也会加快打包的速度。cacheDirector可以接收一个字符串类型的路径来作为缓存路径这个值也可以为 true此时其缓存目录会指向 node_modules/.cache/babel-loader 由于babel/preset-env会将ES6 Module转化为CommonJS 的形式这会导致 Webpack中的 tree-shaking 特性失效**babel/preset-env的modules 配置项设置为false会禁用模块语的转化而将ESModule的语法交给 Webpack 本身处理。** ts-loader ts-loader 与 babel-loader 的性质类似它是用于连接Webpack 与 Typescript的模块。可使用以下命令进行安装: npm install ts-loader typescriptWebpack 配置如下: rules;[{test: /\.ts$/,use:ts-loader,} ],需要注意的是Typescript本身的配置并不在ts-loader 中而是必须要放在工程录下的tsconfig.json中。 通过 Typescript 和 ts-loader我们可以实现代码类型检查。 html-loader html-loader用于将HTML文件转化为字符串并进行格式化这使得我们可以把一个HTML片段通过JS加载进来 安装命令如下: npm install html-loaderWebpack配置如下 rules;[{test: /\.html$/,use:html-loader,} ],header.html将会转化为字符串并通过 documentwrite 插人页面中 file-loader file-loader 用于打包文件类型的资源并返回其 publicPath。 安装命令如下: npm install file-loaderWebpack配置如下 const path require(path); module.exports (entry:./app.js,output: {path: path.join(__dirname,dist),filename: bundle.js},module:(rules:[{ test: /\.(png|jpg|gif)$/use:file-loader,}],}, }; 4 上面我们对png、jpg、gif这类图片资源使用 file-loader然后就可以在JS中加载图片了。 import avatarImage from ./avatar.jpg;console.log(avatarImage);// c6f482ac9a1905e1d7d22caa909371fc.jpgurl-loader url-loader 与 fle-loader 作用类似唯一的不同在于用户可以设置一个文件大小阈值当大于该阙傻时与 fle-loader一样返回 publicPath而小于该值时则返回文件base64 形式编码。 安装命令如下: npm install url-loaderWebpack 配置如下: rules:[{test:/\.(png|jpg|gif)$/,use:{loader: url-loader,options:{limit: 10240,name: [name].[ext],publicPath: ./assets-path/,}}} ]url-loader 可接收与 file-loader 相同的参数如name和 publicPath 等同时也可以接收一个 limit 参数。 vue-loader vue-loader 用于处理 vue 组件: 安装命令如下; npm install vue-loader vue vue-template-compiler css-loaderWebpack配置如下 rules;[{test: /\.vue$/,use:vue-loader,} ],自定义 loader 有时会遇到现有 loader 无法很好满足需求的情况这时就需要我们对其进行修改或者编写新的 loader。如前面代码所演示的一样loader 本身其实非常简单下面就从头实现一个loader 我们将实现一个loader它会为所有JS文件启用产格模式也就是说它会在文件头部加上如下代码: use strict在开发一个loader时我们可以借助 npm/yarn 的软链能进行本地调试(当然之后可以考发布到 npm等)。下面让我们初始化这个loader并配置到工程中。 创建一个 force-strict-loader 目录然后在该目录下执行 npm初始化命令 npm init -y接着创建 index.js也就是 loader 的主体 module.exports function(content){var useStrictPrefix \use strict\;\n\n;return useStrictPrefix content; }现在我们可以在 Webpack 工程中安装并使用这个 loader了。 npm install path-to-loader/force-strict-loader在 Webpack工程目录下使用相对路径安装会在项目的node modules 中创建一个指向实际 force-strict-loader 目录的软链也就是说之后我们可以随时修改 loader源码并软链且不需要重复安装了。 下面修改 Webpack 配置 module:{rules:[{test:/\.js$/,use: force-strict-loader}] }我们将这个loder设置为对所有JS 文件生效。此时对该工程进行打包应该可以看到JS文件的头部都已经加上了启用严格模式的语句。 启用缓存 当文件输入和其依赖没有发生变化时应该让 loader 直接使用存而不 行转换的工作。在 Webpack 中可以使用 his.cacheable 进行控制修改我们的 module.exports function(content){if(this.cacheable){this.cacheable();}var useStrictPrefix \use strict\;\n\n;return useStrictPrefix content; }通过启用缓存可以加快 Webpack 打包速度并且可保证相同的输人产生输出。 获取options 前文讲过loader的配置项通过 use.options 传进来如: rules:[{test:/\.js$/,use: {loader:force-strict-loader,options:{sourceMap: true}}}]上面配置了一个配置项sourceMap接下来要再loader中获取要先安装一个依库loader-utils安装命令如下 npm install loader-utilsloader更新如下 var loaderUtils require(loader-utils); module.exports function(content){if(this.cacheable){this.cacheable();}var options loaderUtils.getOptions(this) || {};var useStrictPrefix \use strict\;\n\n;return useStrictPrefix content; }通过loaderUtils.getOptions可以获取到配置对象 source-map source-map可以便于实际开发者在浏览器控制台查看源码。如果没有对source-map进行处理最终也就无法生成正确的 map 文件在浏览器的 dev tool中可能就会看到错乱的源码。 下面是支持了source-map特性后的版本 var loaderUtils require(loader-utils); var SourceNode require(source-map).SourceNode; var SourceMapConsumer reuqire(source-map).SourceMapConsumer; module.exports function(content){if(this.cacheable){this.cacheable();}var useStrictPrefix \use strict\;\n\n;return useStrictPrefix content;var options loaderUtils.getOptions(this) || {};if (options.sourceMap sourceMap) (var currentRequest loaderutils.getCurrentRequest(this);var node SourceNode.fromStringWithsourceMap(content,new SourceMapConsumer(sourceMap));node.prepend(usestrictPrefix);var result node.toStringWithSourceMap(( file: currentRequest ));var callback this.async();callback(nullresult.coderesult.map.toJSON());}//不支持source-map情况return useStrictPrefix content; }我们通过source-map这个库来对map进行操作包括接收和消费之前的文件内容和source-map对内容节点进行修改最后产生新的source-map 在函数返回的时候要使用this.async获取 callback 函数(主要是为了一次性返回多个值)。callback函数的3个参数分别是抛出的错误、处理后的源码以及source-map
http://www.w-s-a.com/news/489480/

相关文章:

  • wordpress 发布网站南宁网站建设网站
  • 职业生涯规划大赛心得贵阳哪家网站做优化排名最好
  • wordpress 图片懒加载北京网站优化和推广
  • 深圳网站建设工作一个dede管理两个网站
  • 被禁止访问网站怎么办中国建筑网官网查询系统
  • 网站管理运营建设网贷网站
  • 深圳市龙岗区住房和建设局网站怎么给网站做404界面
  • 设计类网站网站系统 建设和软件岗位职责
  • 网站后台打开慢站长之家网址ip查询
  • 图书馆网站设计方案家具设计作品
  • 马鞍山做网站公司排名徐州网站外包
  • 十堰微网站建设电话宣传型网站建设
  • 电脑制作网站教程网络公司除了建网站
  • 360制作网站搜网站网
  • 门户网站标题居中加大网站底部的制作
  • 网站建设项目费用报价ai软件下载
  • 面料 做网站重庆网站seo费用
  • 中国沈阳网站在哪里下载中国移动营销策略分析
  • 建设银行 钓鱼网站360免费建站教程
  • wordpress全站cdn网站运营年度推广方案
  • 成都网站开发培训机构网站开发 实习报告
  • 廊坊网站建设佛山厂商wordpress神主题
  • 成县建设局网站中国建筑有几个工程局
  • 网站打不开被拦截怎么办单页面网站制作
  • 关于协会网站建设的建议设计公司名字参考
  • 怎样申请做p2p融资网站页面设计时最好使用一种颜色
  • 一般做网站上传的图片大小网站软件设计
  • 用来网站备案注册什么公司好wordpress怎么搜索中文主题
  • 网站开发 打标签深圳软件公司排名
  • 邯郸的网站建设电子网站怎么做的