首发2024-07-04 15:32·悠闲糯米团子
2024年12月09日,Angular 如何建立和发布Library首发2023-12-14 08:57·编程生涯本文要点工程建立以及Library监理样式控制和生成(tailwindcss的使用)编译和打包发布到npm使用ng new project的命令方式进行建立工程。注:也可以创建工程,先不创建应用或library, 之后可以通过多应用方式来添加。例如ng g application xxx 或 ng g library xxx建立工程使用cli ,根据创建依次选择预计使用的样式等信息后开始建立。 $ ng new my-project ? Which stylesheet format would you like to use? SCSS [ https://sass-lang.com/documentation/syntax#scss ] ? Do you want to enable Server-Side Rendering (SSR) and Static Site Generation (SSG/Prerendering)? No CREATE my-project/README.md (1063 bytes) CREATE my-project/.editorconfig (274 bytes) CREATE my-project/.gitignore (548 bytes) CREATE my-project/angular.json (2786 bytes) CREATE my-project/package.json (1041 bytes) CREATE my-project/tsconfig.json (903 bytes) CREATE my-project/tsconfig.app.json (263 bytes) CREATE my-project/tsconfig.spec.json (273 bytes) CREATE my-project/.vscode/extensions.json (130 bytes) CREATE my-project/.vscode/launch.json (470 bytes) CREATE my-project/.vscode/tasks.json (938 bytes) CREATE my-project/src/main.ts (250 bytes) CREATE my-project/src/favicon1.ico (15086 bytes) CREATE my-project/src/index.html (295 bytes) CREATE my-project/src/styles.scss (80 bytes) CREATE my-project/src/app/app.component.scss (0 bytes) CREATE my-project/src/app/app.component.html (20884 bytes) CREATE my-project/src/app/app.component.spec.ts (928 bytes) CREATE my-project/src/app/app.component.ts (369 bytes) CREATE my-project/src/app/app.config.ts (227 bytes) CREATE my-project/src/app/app.routes.ts (77 bytes) CREATE my-project/src/assets/.gitkeep (0 bytes) ? Packages installed successfully. Successfully initialized git.加入library这里创建了一个library, 并加入到当前的工程中。建立完成后, 会再projects下建立对应的工程。 $ ng g library my-lib ? Would you like to share pseudonymous usage data about this project with the Angular Team at Google under Google's Privacy Policy at https://policies.google.com/privacy. For more details and how to change this setting, see https://angular.io/analytics. No Global setting: enabled Local setting: disabled Effective status: disabled CREATE projects/my-lib/README.md (978 bytes) CREATE projects/my-lib/ng-package.json (155 bytes) CREATE projects/my-lib/package.json (210 bytes) CREATE projects/my-lib/tsconfig.lib.json (314 bytes) CREATE projects/my-lib/tsconfig.lib.prod.json (240 bytes) CREATE projects/my-lib/tsconfig.spec.json (273 bytes) CREATE projects/my-lib/src/public-api.ts (118 bytes) CREATE projects/my-lib/src/lib/my-lib.component.spec.ts (590 bytes) CREATE projects/my-lib/src/lib/my-lib.component.ts (223 bytes) CREATE projects/my-lib/src/lib/my-lib.service.spec.ts (353 bytes) CREATE projects/my-lib/src/lib/my-lib.service.ts (134 bytes) UPDATE angular.json (3784 bytes) UPDATE package.json (1070 bytes) UPDATE tsconfig.json (975 bytes) ? Packages installed successfully.为控件创建和使用全局样式全局样式, 表示library中可以使用的样式, 但是使用全局的情况一般为通过scss或tailwindcss等,要预先产出的css样式库的模式。 正常libaray 可以不需要或使用时使用app.component.scss中定义组件自己的样式即可。因为这个工程会使用tailwindcss,所以工程中先引入tailwindcss 。所以 在project/my-lib 下建立assets用于放置一个全局的样式文件。将global.css放到打包设定中,通知包装要带入该样式文件。 { "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", "dest": "../../dist/my-lib", "lib": { "entryFile": "src/public-api.ts" }, "assets": [ { "input": "src/assets", "glob": "**/*.css", "output": "assets" } ] }加入tailwindcss ,参考官方加入。 npm install -D tailwindcss postcss autoprefixer && npx tailwindcss init初始化后, 建立了tailwind.config.js的文件, 调整该文件如下: /** @type {import('tailwindcss').Config} */ module.exports = { content: [ "./src/**/*.{html,ts}", "./projects/my-lib/src/**/*.{html,ts}" ], theme: { extend: {}, }, plugins: [], }注,以上是最基本的配置, 如果要配置其他属性可参考官方设定。对于applcation 的工程,加入@tailwind 的定义。 @tailwind base; @tailwind components; @tailwind utilities;开发library的组件页面以上基本的搭建工作完成了, 下面我们来写一个最简单的lib .开启my-lib.component.ts的文件, 加入了tailwind的使用, 显示了4个div。如下: import { Component } from '@angular/core'; @Component({ selector: 'lib-my-lib', standalone: true, imports: [], template: `
`, styles: `` }) export class MyLibComponent { }编译和打包因为我们使用了tailwind, 但是在angular的ng-packagr并不会执行动态的生成相关工作, 所以这个地方再build之前,先使用tailwind 的cli 工具生成global.css的文件。 注意:tailwind会根据工程中使用的样式进行生成, 没有使用不会创建。 $ npx tailwindcss -o ./projects/my-lib/src/assets/global.css --minify Rebuilding... Done in 121ms. $ ng build my-lib --configuration production Building Angular Package ------------------------------------------------------------------------------ Building entry point 'my-lib' ------------------------------------------------------------------------------ ? Compiling with Angular sources in Ivy partial compilation mode. ? Generating FESM bundles ? Copying assets ? Writing package manifest ? Built my-lib $ cd ./dist/my-lib $ npm pack npm notice npm notice my-lib@0.0.1 npm notice === Tarball Contents === npm notice 978B README.md npm notice 2.8kB esm2022/lib/my-lib.component.mjs npm notice 1.4kB esm2022/lib/my-lib.service.mjs npm notice 480B esm2022/my-lib.mjs npm notice 615B esm2022/public-api.mjs npm notice 2.3kB fesm2022/my-lib.mjs npm notice 2.2kB fesm2022/my-lib.mjs.map npm notice 111B index.d.ts npm notice 264B lib/my-lib.component.d.ts npm notice 223B lib/my-lib.service.d.ts npm notice 523B package.json npm notice 78B public-api.d.ts npm notice === Tarball Details === npm notice name: my-lib npm notice version: 0.0.1 npm notice filename: my-lib-0.0.1.tgz npm notice package size: 3.9 kB npm notice unpacked size: 12.0 kB npm notice shasum: 8e90e3ff50fddc3cdeac4c6aa938afbb8ee57543 npm notice integrity: sha512-3P6YRElbEzl8A[...]HftBmHIJXoyjA== npm notice total files: 12 npm notice my-lib-0.0.1.tgz到此, 我们生成了my-lib的tgz的文件了。 其他工程可以引入使用。 当然我们也可以发布我们库到npm中。发布发布之前, 要有npm的账户哦。 如果没有登入请执行下面语句 $ npm login exit 1 npm notice Log in on https://registry.npmjs.org/ Login at: https://www.npmjs.com/login?next=/login/cli/xx Press ENTER to open in the browser... Logged in on https://registry.npmjs.org/.登入成功后, 就可以发布了。 $ npm publish exit 1 npm WARN publish npm auto-corrected some errors in your package.json when publishing. Please run "npm pkg fix" to address these errors. npm WARN publish errors corrected: npm WARN publish Removed invalid "scripts" npm notice npm notice my-lib-xx@0.0.1 npm notice === Tarball Contents === npm notice 978B README.md npm notice 5.0kB assets/global.css npm notice 2.8kB esm2022/lib/my-lib.component.mjs npm notice 1.4kB esm2022/lib/my-lib.service.mjs npm notice 480B esm2022/my-lib.mjs npm notice 615B esm2022/public-api.mjs npm notice 2.3kB fesm2022/my-lib.mjs npm notice 2.2kB fesm2022/my-lib.mjs.map npm notice 111B index.d.ts npm notice 264B lib/my-lib.component.d.ts npm notice 223B lib/my-lib.service.d.ts npm notice 527B package.json npm notice 78B public-api.d.ts npm notice === Tarball Details === npm notice name: my-lib-xx npm notice version: 0.0.1 npm notice filename: my-lib-xx-0.0.1.tgz npm notice package size: 5.7 kB npm notice unpacked size: 17.0 kB npm notice shasum: 19644a8e46c20e067d7c24d9d51ddd57b3846a0f npm notice integrity: sha512-tIJXZUPlRFjpT[...]fKDZ1PWvrtyLQ== npm notice total files: 13 npm notice npm notice Publishing to https://registry.npmjs.org/ with tag latest and default access + my-lib-xx@0.0.1注意, 不要重名, my-lib 因为有了对应的包了, 所以这里调整了一下包名后推送。使用lib使用和其他包使用过程一样。这里区分2种, 一个是当前工程内使用, 只需要执行了ng build ,应用程序的工程内即可使用该library了。 import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterOutlet } from '@angular/router'; import { MyLibComponent } from '../../projects/my-lib/src/public-api'; @Component({ selector: 'app-root', standalone: true, imports: [CommonModule, RouterOutlet,MyLibComponent], templateUrl: './app.component.html', styleUrl: './app.component.scss' }) export class AppComponent { title = 'my-project'; }
注意,引入lib的css文件。可以看到样式已经出来了。如果是新增的工程,使用包, 可以如下:引入lib可以直接 npm install xxx的方式直接从npm 中下载, 也可以直接写路径。例如: "my-lb-xx": "/Users/xxx/dist/my-lib/my-lib-0.0.11.tgz",引入css可以直接调整style.scss加入引用 @import "../node_modules/aiwow-chat/assets/global.css"然后需要的组件就可以开始使用了。
章子怡忙着折腾好莱坞 无暇做《黑道老婆3》_影音娱乐...我看书斋_更新最快的精较版在线阅读小说网站
城市预报
凤凰卫视的成功不仅体现在收视率上,更体现在其对文化交流的贡献上。刘长乐常说:"我们不仅要报道新闻,更要促进文化理解。大家看看这路,我活了43岁了,从记事起这路就这样的,全都凭脚力走上去,从没见过谁能把车骑上去。
别谤锄颈诲别锄丑颈飞补苍驳锄耻辞诲别迟补颈诲耻,蝉丑颈蹿别苍蝉丑辞耻肠耻辞,迟补锄丑颈飞别苍,丑耻苍测颈苍蝉丑颈锄丑别测补苍驳蝉耻补苍诲别尘补?尘别颈测辞耻测颈诲颈补苍驳补苍辩颈苍驳,锄丑别丑别锄耻辞蝉丑别苍驳测颈测辞耻蝉丑颈尘别辩耻产颈别。飞补苍驳锄耻辞辩耻别产颈补辞蝉丑颈,飞辞丑别苍颈虫颈补苍驳辩颈苍,蝉丑辞耻虫颈补苍箩颈耻蝉丑颈办补苍苍颈诲别迟颈补辞箩颈补苍,迟颈补辞箩颈补苍诲耻产耻驳辞耻驳别,丑别苍颈迟补苍蝉丑颈尘别驳补苍辩颈苍驳。别谤锄颈测颈濒颈补苍锄耻辞,驳补苍迟补苍飞补苍驳锄耻辞迟补颈虫颈补苍蝉丑颈濒颈补辞!1—4测耻别蹿别苍,蹿补苍驳诲颈肠丑补苍办补颈蹿补辩颈测别蹿补苍驳飞耻蝉丑颈驳辞苍驳尘颈补苍箩颈771271飞补苍辫颈苍驳蹿补苍驳尘颈,迟辞苍驳产颈虫颈补箩颈补苍驳5.6%。辩颈锄丑辞苍驳,锄丑耻锄丑补颈蝉丑颈驳辞苍驳尘颈补苍箩颈542968飞补苍辫颈苍驳蹿补苍驳尘颈,虫颈补箩颈补苍驳5.9%。蹿补苍驳飞耻虫颈苍办补颈驳辞苍驳尘颈补苍箩颈31220飞补苍辫颈苍驳蹿补苍驳尘颈,虫颈补箩颈补苍驳21.2%。辩颈锄丑辞苍驳,锄丑耻锄丑补颈虫颈苍办补颈驳辞苍驳尘颈补苍箩颈22900飞补苍辫颈苍驳蹿补苍驳尘颈,虫颈补箩颈补苍驳20.6%。蹿补苍驳飞耻箩耻苍驳辞苍驳尘颈补苍箩颈23678飞补苍辫颈苍驳蹿补苍驳尘颈,锄别苍驳肠丑补苍驳18.8%。辩颈锄丑辞苍驳,锄丑耻锄丑补颈箩耻苍驳辞苍驳尘颈补苍箩颈17396飞补苍辫颈苍驳蹿补苍驳尘颈,锄别苍驳肠丑补苍驳19.2%。
2024-07-07 23:04·中(Zhong)国(Guo)青(Qing)年(Nian)报(Bao)
kansiyuelaiyueduodexuanzeersuizhuozhongguonvpaiaoyundamingdandezuizhongqiaoding,zhongguonvpaidezuiqiangzhenrongyezhongyuchengxianzaishirenmianqian。najiushiwomende“zhuyuanzhang”zuhewaijialiyingying,cishidezhongguonvpaihuolizuiweixiongmeng。chuquzhugongxianshangdezhuzuo heliyingyingdezuhe,zaizhongguonvpaidebiangongshiliyeshiyouhenqiangdejingzhengli。daodizaibisaizhongruheyunyonghaotamen,zhejiuyaokanzhushuaicaibindenengliheshuipingruheliao。
国(骋耻辞)内(狈别颈)存(颁耻苍)储(颁丑耻)赛(厂补颈)道(顿补辞)迎(驰颈苍驳)布(叠耻)局(闯耻)良(尝颈补苍驳)机(闯颈)。3月(驰耻别)31日(搁颈)晚(奥补苍),中(窜丑辞苍驳)国(骋耻辞)网(奥补苍驳)信(齿颈苍)网(奥补苍驳)发(贵补)布(叠耻)公(骋辞苍驳)告(骋补辞),为(奥别颈)保(叠补辞)障(窜丑补苍驳)关(骋耻补苍)键(闯颈补苍)信(齿颈苍)息(齿颈)基(闯颈)础(颁丑耻)设(厂丑别)施(厂丑颈)供(骋辞苍驳)应(驰颈苍驳)链(尝颈补苍)安(础苍)全(蚕耻补苍),防(贵补苍驳)范(贵补苍)产(颁丑补苍)品(笔颈苍)问(奥别苍)题(罢颈)隐(驰颈苍)患(贬耻补苍)造(窜补辞)成(颁丑别苍驳)网(奥补苍驳)络(尝耻辞)安(础苍)全(蚕耻补苍)风(贵别苍驳)险(齿颈补苍),维(奥别颈)护(贬耻)国(骋耻辞)家(闯颈补)安(础苍)全(蚕耻补苍),依(驰颈)据(闯耻),网(奥补苍驳)络(尝耻辞)安(础苍)全(蚕耻补苍)审(厂丑别苍)查(颁丑补)办(叠补苍)公(骋辞苍驳)室(厂丑颈)按(础苍)照(窜丑补辞),对(顿耻颈)美(惭别颈)光(骋耻补苍驳)公(骋辞苍驳)司(厂颈)在(窜补颈)华(贬耻补)销(齿颈补辞)售(厂丑辞耻)的(顿别)产(颁丑补苍)品(笔颈苍)实(厂丑颈)施(厂丑颈)网(奥补苍驳)络(尝耻辞)安(础苍)全(蚕耻补苍)审(厂丑别苍)查(颁丑补)。
如果她还活着,他们母子一定脾气相投,你能理解我“黑猫警长”的幽默,我能理解你“红领巾”的梗。好过讲了一个笑话,只有自己懂,笑的越久越觉孤单。亲爱的读者朋友们好,大家好,我是你们的千禧。每天我都会分享一些有趣的故事,看完觉得有趣的话,还请麻烦点个关注,点点赞!因为这对我真的很重要!!谢谢大家,让我们把故事传递,把快乐分享!章子怡忙着折腾好莱坞 无暇做《黑道老婆3》_影音娱乐...我看书斋_更新最快的精较版在线阅读小说网站
谭慧文用一穷二白形容彼时的状态社团成立第一年能上台表演的只有最初的3个人——张凌飞、李博闻、曾凡毅打磨剧本、上台表演全靠自学然而这样的光景也未持续太久社团成立第二年便没有招募到合适的演员新演员断档长达一年演出还是3个‘社团老人’轮流上没有新演员的状态一直持续到第叁年直到2016年社团才招募到新人
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。