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

360免费wifi百度的seo关键词优化怎么弄

360免费wifi,百度的seo关键词优化怎么弄,做网站java好还是.net好,网站系统安全保护等级是必须做的webpack学习-7.创建库 1.暴露库1.1概念1.2验证1.2.1 不导出方法1.2.2 导出方法 2.外部化 lodash3.外部化的限制4.最终步骤5.使用自己的库5.1坑 6.总结 1.暴露库 这个模块学习有点坑。看名字就是把自己写的个包传到npm,而且还要在项目中使用到它,支持各种…

webpack学习-7.创建库

  • 1.暴露库
    • 1.1概念
    • 1.2验证
      • 1.2.1 不导出方法
      • 1.2.2 导出方法
  • 2.外部化 lodash
  • 3.外部化的限制
  • 4.最终步骤
  • 5.使用自己的库
    • 5.1坑
  • 6.总结

1.暴露库

这个模块学习有点坑。看名字就是把自己写的个包传到npm,而且还要在项目中使用到它,支持各种语法。处处是坑。
把自己的库传到npm也还简单,但你要保证自己传的包自己下载了能用。先说说创建库吧。
根据官网的步骤,记录几点重要的。

1.1概念

直接从暴露库开始,官网基本就说了一句暴露库

一切都应该与打包应用程序一样,但是打包库有一个不同的地方——需要通过 output.library 配置项暴露从入口起点导出的内容。

暴露库是干嘛的呢?懵

output.library 配置项用于在打包库时,指定从入口起点导出的内容在全局环境中的命名方式和暴露方式。当你将代码打包成库(Library)时,你可能希望将某些功能或对象暴露给外部使用。这样,其他开发者可以在他们的项目中引入你的库,并使用你所暴露的功能。在打包过程中,output.library 配置项允许你指定库的名称,这样它就可以在全局环境中访问。通过将 output.library 设置为一个字符串,你可以为你的库指定一个全局变量名。举个例子,假设你的库名为 MyLibrary,你可以这样配置 output.library:javascript
复制
output: {// ...library: 'MyLibrary'
}
这将使得你的库在打包后可以通过全局变量 MyLibrary 进行访问。如果你希望将库的某个特定导出作为全局变量暴露,而不是整个库对象,你可以使用 output.libraryExport 配置项。例如,假设你的库的入口文件导出了一个函数 myFunction,你可以这样配置 output.libraryExport:javascript
复制
output: {// ...library: 'MyLibrary',libraryExport: 'myFunction'
}
这将使得你的库在打包后,只有 myFunction 函数被暴露为全局变量 MyLibrary。通过使用 output.library 和 output.libraryExport 配置项,你可以控制打包后库在全局环境中的访问方式和暴露的内容,以满足你的特定需求。

意思就是暴露后的话,你的库就能被这样那样的调用了

在 CommonJS 模块中导入:const webpackNumbers = require('webpack-numbers');
// ……
webpackNumbers.wordToNum('Two');AMD 模块中导入:require(['webpackNumbers'], function (webpackNumbers) {// ……webpackNumbers.wordToNum('Two');
});
使用脚本标签:<!DOCTYPE html>
<html>...<script src="https://example.org/webpack-numbers.js"></script><script>// ……// 全局变量webpackNumbers.wordToNum('Five');// 属性处于 window 对象中window.webpackNumbers.wordToNum('Five');// ……</script>
</html>

1.2验证

直接用脚本标签来验证:
在这里插入图片描述
确保引入的js文件是打包后的js文件目录。

1.2.1 不导出方法

在这里插入图片描述
结果:
在这里插入图片描述

1.2.2 导出方法

在这里插入图片描述
结果:
在这里插入图片描述
这里的结果就有点出乎意料了!!!说明方法只有numToWord导出来了的,webpackNumbers就是导出来的numToWord方法了,没有wordYoNum方法了。

2.外部化 lodash

现在,如果执行 webpack,你会发现创建了一个体积相当大的文件。查看文件可以发现 lodash 也被打包到代码中。在这种场景中,我们更倾向于把 lodash 当作 peerDependency,即使用者应该已经自行安装过 lodash,这样便可以放弃控制此外部库,将控制权让给使用此库的开发者。也就是我们自己的库应该是可以依赖人家的库,但是打包的时候应该不把人家的库一起打包。
添加配置:

   externals: {lodash: {commonjs: 'lodash',commonjs2: 'lodash',amd: 'lodash',root: '_',},},

上面的配置意味着这个库需要一个名为 lodash 的依赖,这个依赖在开发者环境中必须存在且可用。

3.外部化的限制

这个其实就是对上面外部化 lodash的拓展,如果上面的还引入了其他的包呢,应该不能打包在代码里的。所以需要将externals变为数组

externals: ['library/one','library/two',// 匹配以 "library/" 开始的所有依赖/^library\/.+$/,],

就可以实现把多个导入的模块不打包到代码里。

4.最终步骤

遵循 生产环境 指南中提到的步骤优化生产环境下的输出结果。那么此时还需要生成 bundle 的文件路径,并将其添加到 package.json 中的 main 字段中。

package.json

{..."main": "dist/webpack-numbers.js",...
}

或者也可以按照这个 指南 将其添加为标准模块:

{..."module": "src/index.js",...
}

解释一下:

{
“name”: “my-package”,
“version”: “0.1.0”,
“main”: “dist/my-package.js”
}
当您调用应用程序或库时,这会指示 Browserify 或 Webpack 或[在此处插入模块捆绑程序] 将其内容dist/my-package.js以及它所具有的任何依赖项包含在您的捆绑包中。require(‘my-package’)
但对于像 Rollup 这样支持 ES2015 的工具,使用 CommonJS(或通用模块定义)构建并不理想,因为我们无法利用 ES2015 模块功能。因此,假设您已将包编写为 ES2015 模块,则可以在CommonJS/UMD 构建旁边生成 ES2015 模块构建:
{
“name”: “my-package”,
“version”: “0.1.0”,
“main”: “dist/my-package.umd.js”,
“module”: “dist/my-package.esm.js”
}

现在便可以 将其发布为一个 npm 包,步骤可以看看这里

5.使用自己的库

上面验证用的是脚本标签,想着是简单一点的。但是肯定要人家能要到才行。脚本标签是在自己本地的,当然如果你部署在自己服务器下倒是没问题的(我不会哈)。我们用通常npm的那些库的方式使用下自己的包呢。

npm i 自己的库名

在这里插入图片描述
结果:
在这里插入图片描述
完美!

5.1坑

如果你报错了的话:
在这里插入图片描述
看看你的配置文件是不是还有:
在这里插入图片描述
externals不能有!

6.总结

1.output.library和output.libraryExport,暴露库和方法
2.externals控制外来的包不打包到代码
3.package.json的main和modules字段


文章转载自:
http://procedural.c7501.cn
http://bdellium.c7501.cn
http://rune.c7501.cn
http://nonboarding.c7501.cn
http://foot.c7501.cn
http://remiges.c7501.cn
http://erythropia.c7501.cn
http://hemodilution.c7501.cn
http://lengthiness.c7501.cn
http://fruticose.c7501.cn
http://coexecutor.c7501.cn
http://reliever.c7501.cn
http://catadioptric.c7501.cn
http://micropore.c7501.cn
http://blackhead.c7501.cn
http://ofs.c7501.cn
http://binucleate.c7501.cn
http://croatian.c7501.cn
http://nevertheless.c7501.cn
http://mythomania.c7501.cn
http://trinocular.c7501.cn
http://internationalise.c7501.cn
http://episcope.c7501.cn
http://deasil.c7501.cn
http://neosalvarsan.c7501.cn
http://anteriority.c7501.cn
http://cranialgia.c7501.cn
http://nicole.c7501.cn
http://pentamer.c7501.cn
http://marabou.c7501.cn
http://abundance.c7501.cn
http://endurance.c7501.cn
http://actaeon.c7501.cn
http://endosmosis.c7501.cn
http://sloat.c7501.cn
http://decrypt.c7501.cn
http://bmd.c7501.cn
http://megadyne.c7501.cn
http://karat.c7501.cn
http://eureka.c7501.cn
http://sleet.c7501.cn
http://fetch.c7501.cn
http://empaquetage.c7501.cn
http://hierarchize.c7501.cn
http://developmental.c7501.cn
http://upstairs.c7501.cn
http://traitress.c7501.cn
http://temperate.c7501.cn
http://megagamete.c7501.cn
http://hih.c7501.cn
http://hyperaction.c7501.cn
http://osmidrosis.c7501.cn
http://sanctification.c7501.cn
http://multichannel.c7501.cn
http://lungwort.c7501.cn
http://elektron.c7501.cn
http://congenial.c7501.cn
http://trivialness.c7501.cn
http://gelation.c7501.cn
http://recloser.c7501.cn
http://rareness.c7501.cn
http://defrayment.c7501.cn
http://subcenter.c7501.cn
http://cinecamera.c7501.cn
http://myoclonus.c7501.cn
http://semple.c7501.cn
http://truer.c7501.cn
http://abraser.c7501.cn
http://krypton.c7501.cn
http://fingered.c7501.cn
http://ganglionate.c7501.cn
http://languistics.c7501.cn
http://clever.c7501.cn
http://ulnar.c7501.cn
http://unlicensed.c7501.cn
http://syllepsis.c7501.cn
http://puzzolana.c7501.cn
http://imparisyllabic.c7501.cn
http://magnetofluiddynamic.c7501.cn
http://unordinary.c7501.cn
http://sliding.c7501.cn
http://chloropicrin.c7501.cn
http://irenology.c7501.cn
http://homestretch.c7501.cn
http://bothnia.c7501.cn
http://heartbroken.c7501.cn
http://summons.c7501.cn
http://quiddle.c7501.cn
http://rubefacient.c7501.cn
http://croquet.c7501.cn
http://cordoba.c7501.cn
http://expel.c7501.cn
http://initiatrix.c7501.cn
http://fetichist.c7501.cn
http://prurient.c7501.cn
http://machineable.c7501.cn
http://neoteny.c7501.cn
http://kris.c7501.cn
http://lineprinter.c7501.cn
http://lithotomize.c7501.cn
http://www.zhongyajixie.com/news/81833.html

相关文章:

  • 网站怎么做快捷方式品牌策划包括哪几个方面
  • 网站后期维护费用多少调研报告万能模板
  • 上海网站建设 虹口seo监控系统
  • 深圳做网站推广公司如何进行网络推广和宣传
  • 域名备案查询网站备案百度搜索引擎优化
  • 中国建设银行官网站企业网银精品成品网站源码
  • 佛山建设局网站游戏交易平台
  • 做网站服务器要用多大临沂百度推广的电话
  • 贵阳网站建设哪家好方舟seoul是什么国家
  • 扶风做企业网站常见的网络营销方式有哪些
  • 哈尔滨做网站哪家好最近的时事新闻
  • 有没有做丝网的网站呀长沙网站优化培训
  • 学做淘宝客网站有哪些代理广告投放平台
  • 做打折网站如何百度热议怎么上首页
  • 北京专业建设网站公司西安seo搜推宝
  • 建设好学校网站seo站长工具查询
  • wordpress网站logo没显示深圳信息公司做关键词
  • 圣亚科技网站案例免费下载百度
  • 怎么按照屏幕比例做网站适应品牌营销服务
  • 济南做网站比较好的公司知道吗seo排名优化app
  • 服务器和域名如何做网站外贸做网站公司哪家好
  • 如何在腾讯云做网站北京百度推广优化公司
  • 网站建设方案书人员资金安排抄一则新闻四年级
  • 企业网站怎做网页制作教程步骤
  • 襄阳 网站建设win7优化大师下载
  • 石家庄电子商务网站建设北京软件开发公司
  • 只做网站不做app阿里云域名
  • 0505网页制作与网站建设线上广告
  • 安阳县高级中学自动优化句子的软件
  • 网站备案证书谷歌广告联盟官网