angularJS问题方法集合

使用AngularCLI快速开发一个Library

2020-01-20  本文已影响0人  十五度灰

过程如下:

  1. 使用 Angular CLI 创建 Lib库 的骨架
  2. 开发 Lib库
  3. 打包 Lib库 的资源文件和全局样式文件
  4. 测试并使用 Lib库

关键字说明:


第一步: 使用 Angular CLI,用以下命令生成一个新库的骨架

ng new my-app --skip-install --style=scss --routing=false
cd my-app
ng generate library my-lib
npm install

Lib库的骨架

第二步: 开发Lib库

开发Lib库 ng-package.json

第三步: 打包Lib库并在宿主工程中使用

"scripts": {
 ...
 // 1. 编译Lib库
 // 说明: my-lib是你的Lib库的名字
 // 编译的结果会放到dist/my-lib目录下(在ng-package.json文件中配置)
 "build_lib": "ng build my-lib",
 // 2. 将编译之后的Lib库打包
 // 说明: `npm pack`会将你编译之后的代码打包成.tgz文件
 "npm_pack": "cd dist/my-lib && npm pack",
 // 3. 在宿主工程中安装刚刚打包好的Lib库
 // 说明: 宿主工程作为测试用的工程, 本地安装刚打包好的Lib库即可
 "npm_install": "npm i ./dist/my-lib/my-lib-0.0.1.tgz",

 // 整合之后的命令: 最终只需要执行这一个命令即可
 // 说明: 每次Lib库有修改, 都需要重新执行这个命令
 "package": "npm run build_lib && npm run npm_pack && npm run npm_install"
 ...
}
现在的打包结果
期待的结果

第四步: 打包资源文件和全局样式文件

"scripts": {
  ...
  // 1.编译Lib库
  "build_lib": "ng build my-lib",
  // 2.将编译之后的Lib库打包
  "npm_pack": "cd dist/my-lib && npm pack",
  // 3. 在宿主工程中安装刚刚打包好的Lib库
  "npm_install": "npm i ./dist/my-lib/my-lib-0.0.1.tgz",

  // 4.copy assets
  // 说明: 将assets目录从Lib库中copy到dist/my-lib中
  "copy_assets": "cp -rf projects/my-lib/src/assets dist/my-lib/assets",
  // 5.copy theme
  // 说明: 将theme目录从Lib库中copy到dist/my-lib中
  "copy_theme": "cp -rf projects/my-lib/src/theme dist/my-lib/theme",

  // 整合之后的命令
  "package": "npm run build_lib && npm run copy_assets && npm run copy_theme && npm run npm_pack && npm run npm_install"
  ...
}
以assets为例, 没有build进来
以assets为例, 期待的结果 angular.json

最后


参考资料

开发Lib库

Angular CLI 不能自动打包Lib库中的资源文件

嫌copy太low, 用第三方库来打包assets

嫌copy太low, 用第三方库来打包scss

npm报错: Unexpected end of JSON input while parsing near '...' , 执行npm cache clean --force

上一篇 下一篇

猜你喜欢

热点阅读