当前位置: 首页 > 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.hkea.cn/news/14303226/

相关文章:

  • 做钓鱼网站的公司手机排名哪个网站最权威
  • 石家庄网站运营公司做网站建设一年能赚多少钱
  • 汕头汽车网站建设wordpress 评论ip拉黑
  • html5手机企业网站模板品质好怎么形容词语
  • 修改散文网站wordpress文章more插件
  • 网站首页设计过程网站顶部素材
  • wordpress建站教程视频创业网站怎么做
  • 上海企业网站开发网站前台如何刷新
  • 腾讯云配置wordpress国内好的seo网站
  • 电商网站图片兰州市七里河建设局网站
  • 河南龙王建设集团网站wordpress企业培训
  • 做公司月刊网站网站开发配置状态报告
  • 网页设计与网站建设实训报告网站备案承诺书
  • 哪个网站微博做的最好深圳网站推广策划
  • 织梦网站怎样做百度主动推送学校网站开发模式
  • 广东深广东深圳网站建设服务浙江银安建设有限公司网站
  • 网站做视频怎么赚钱的广东专业做网站排名公司
  • 可以在自己家做外卖的网站庆阳建设局网站
  • 昆山高端网站建设机构微信彩票网站网站建设
  • 做网站代码编辑工具凌云网最新消息
  • 网站建设 国鸿宁波市镇海建设交通局网站
  • 视频网站怎么搭建seo查询工具
  • 微网站开发入门推荐网站建设品牌
  • 平台推广网站排名开发做网站公司
  • 做网站策划书文档廊坊做网站公司
  • 下载模板后怎么建设网站南沙网站建设价格
  • 做影视网站怎么赚钱正规游戏代理加盟
  • 做网站一般几个人百度地图怎么看上次导航的路线
  • 网站模板整站湘潭网站建设磐石网络上班时间
  • 深圳做外贸网站运动鞋建设网站前的市场分析