使用脚本进行 SAP Spartacus 安装工作

举报
汪子熙 发表于 2022/09/02 13:00:32 2022/09/02
【摘要】 Test the Spartacus installation with schematics on Windows本文介绍详细步骤。首先使用命令行安装 verdaccio:Install verdaccio $ npm i -g verdaccio@4 (only for the first time)Verdaccio 是一个简单的、零配置要求的本地私有 NPM 注册表。 不需要整个数据...

Test the Spartacus installation with schematics on Windows

本文介绍详细步骤。

首先使用命令行安装 verdaccio:

Install verdaccio $ npm i -g verdaccio@4 (only for the first time)

Verdaccio 是一个简单的、零配置要求的本地私有 NPM 注册表。 不需要整个数据库就可以开始。 Verdaccio 开箱即用,带有自己的小型数据库,并且能够代理其他注册表(例如 npmjs.org),还引入了缓存下载模块的功能。 对于那些希望扩展其存储能力的人,Verdaccio 支持各种社区制作的插件来连接到服务,例如 Amazon 的 S3、Google Cloud Storage 或创建自己的插件。


使用下面的命令行添加新用户:

npm adduser --registry http://localhost:4873

这样,之后安装 Spartacus 需要拖取依赖包时,可以从本地 verdaccio 数据库里读取内容,而无需通过网络读取。

错误1:lsof command not found


lsof 命令用来检查 verdaccio 是否已经正在运行了:


verdaccio 用来注册新用户,完成之后需要结束该进程。

上面脚本的含义是,把 lsof 命令的结果存到变量 VERDACCIO_PID 里,然后检查该变量是否不为空。

-n 操作检测后面的操作数是否为空。

if [ ! -n “$1” ] 的含义是,检查第一个参数是否为空。-n 不为空,再用感叹号加个反,表示空。

等价于:

[ -z "$1" ]

-z 检测第一个输入参数是否为空。

$1 $2 代表第一个和第二个输入参数,例如下面的 shell 脚本:
./foo bar baz

则 $1 为 bar,$2 为 baz

An unhandled exception occurred: EPERM: operation not permitted, open 'C:\Users\I042416.angular-config.json


在管理员模式下运行还是报同样的错误。

也就是说,单独执行这个命令都会报错:

npm i -g @angular/cli@12.0.5

结果打脸了,单独执行上面的命令可以。这真是怪事。

还是老问题,把这个 .angular-config.json 文件的隐藏属性去掉即可:

解决了这个问题之后,就开始 build 了:

成功安装:

The installation will create two folders in the $BASE_DIR directory:

  • apps (generated/executable apps)
  • clone (cloned Spartacus repo)

FESM2015
UMD

开始构建了:

构建结果:

执行的是这些 ng build 命令:

这里多了一个 Schematics build:

这个绿色的方框正好只比包裹在里面的字符串多两个字符:

通过 printh 函数实现:

publish 到一个私有的 npm 仓库去,然后从这个私有的仓库下载库文件进行 shell app 的安装:

shell app 的安装,在 create_apps 函数里完成:

本地存储的定义:

本地 library:

可以解压查看这些本地 library 内容:

完整的源代码:

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。