bower私服部署

简介

1、私服服务器:private-bower

2、包管理模式:git

工具清单

  • nodejs
  • git
  • private-bower

安装

安装nodejs

已安装nodejs可忽略本节内容

1、下载nodejs 程序包

打开nodejs官网下载页面https://nodejs.org/en/download/。右键复制Linux Binaries (x64)的下载链接。执行以下代码下载,并解压

  1. cd ~
  2. #注意:当前下载版本为v10.15.3
  3. #下载
  4. wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
  5. #解压
  6. xz -d node-v10.15.3-linux-x64.tar.xz
  7. #注意:xz 命令执行后node-v10.15.3-linux-x64.tar.xz被输出为node-v10.15.3-linux-x64.tar
  8. tar -xvf node-v10.15.3-linux-x64.tar
  9. #移动node程序文件夹到/opt/nodejs/v10
  10. mv ./node-v10.15.3-linux-x64 /opt/nodejs/v10

2、添加nodejs path到$PATH

  1. #通过修改profile文件:
  2. vim /etc/profile
  3. #找到设置PATH的行
  4. /export PATH
  5. #在export PATH之前,添加环境变量
  6. PATH=/opt/node/v10/bin:$PATH
  7. #保存
  8. #生效方法:系统重启
  9. #有效期限:永久有效
  10. #用户局限:对所有用户
  11. #执行以下命令使之立即生效
  12. source /etc/profile
  13. #或 执行点命令
  14. /etc/profile
  15. #执行以下命令测试nodejs是否已经正确安装
  16. node --version

安装git

  1. yum install -y git git-daemon

安装private-bower

  1. npm install -g private-bower

配置private-bower

  1. cd /opt
  2. mkdir ./private-bower
  3. vi mybowerconfig.json

mybowerconfig.json 配置范例如下:

  1. {
  2. "port": 5678,
  3. "registryFile": "/opt/private-bower/bowerRepository.json",
  4. "timeout": 144000,
  5. "public": {
  6. "disabled": false,
  7. "registry": "http://https://registry.bower.io",
  8. "registryFile": "/opt/private-bower/bowerRepositoryPublic.json",
  9. "whitelist": [],
  10. "blacklist": []
  11. },
  12. "authentication": {
  13. "enabled": false,
  14. "key": "password"
  15. },
  16. "repositoryCache": {
  17. "cachePrivate": false,
  18. "git": {
  19. "enabled": false,
  20. "cacheDirectory": "/opt/private-bower/gitRepoCache",
  21. "host": "localhost",
  22. "port": 6789,
  23. "publicAccessURL" : null,
  24. "refreshTimeout": 10
  25. },
  26. "svn": {
  27. "enabled": false,
  28. "cacheDirectory": "/opt/private-bower/svnRepoCache",
  29. "host": "localhost",
  30. "port": 7891,
  31. "publicAccessURL" : null,
  32. "refreshTimeout": 10
  33. }
  34. },
  35. "proxySettings" : {
  36. "enabled": false,
  37. "host": "proxy",
  38. "username": "name",
  39. "password" : "pass",
  40. "port": 8080,
  41. "tunnel": false
  42. },
  43. "log4js" : {
  44. "enabled": true,
  45. "configPath" : "/opt/private-bower/log4js.conf.json"
  46. }
  47. }

mybowerconfig.json关键配置说明

  • port:外部网络访问端口
  • registryFile:通过bower register name xxx 命令注册bower包的记录文件
  • log4js:configPath :日志配置

log4js.conf.json 配置

  1. {
  2. "appenders": [
  3. {
  4. "type": "dateFile",
  5. "filename": "private-bower.log",
  6. "pattern": "-yyyy-MM-dd",
  7. "alwaysIncludePattern": false
  8. },
  9. {
  10. "type": "console"
  11. }
  12. ],
  13. "replaceConsole": true
  14. }

启动private-bower

  1. cd /opt/private-bower
  2. private-bower --config ./mybowerconfig.json

开放端口

  1. #以下代码为centos7
  2. # 开放端口
  3. firewall-cmd --zone=public --add-port=5678/tcp --permanent
  4. # 更新规则
  5. firewall-cmd --reload
  6. # 启动|关闭|重新启动 防火墙,(注意:如果执行`firewall-cmd --reload`命令后仍无法访问则重启服务
  7. systemctl [start|stop|restart] firewalld.service

开机启动/注册为服务

private-bower测试

1、创建.bowerrc文件

如果window下无法通过资源管理器创建时在命令行中(cmd)中执行以下代码

  1. type null>.bowerrc

2、编辑以下内容

  1. {"registry":"http://<bower私服ip地址>:5678"}

3、在命令行中执行以下命令测试

  1. bower search jquery

创建bower包

创建bower包需要满足以下条件

  • git :bower包依赖git仓库,公网可以选择github,私服可以搭建gitlab
  • git仓库的tags使用标准版本号格式 :bower 通过读取git仓库tags识别bower版本号。版本号建议使用标准版本号格式,即xx.xx.xx[.xx],并且支持v作为前缀的版本号。有效tag如:1.1.0v1.1.1
  • git仓库根目录包含bower.json :该文件声明bower包的相关信息

创建bower.json

  1. # 执行以下命令,根据提示输入即可
  2. bower init

bower.json文件基本结构

  1. {
  2. "name": "bower_name",
  3. "authors": [
  4. "xxx"
  5. ],
  6. "description": "",
  7. "main": "",
  8. "license": "MIT",
  9. "homepage": "",
  10. "private": false,
  11. "ignore": [
  12. "**/.*",
  13. "node_modules",
  14. "bower_components",
  15. "test",
  16. "tests"
  17. ]
  18. }

创建git仓库

基本流程

1、创建仓库

2、添加bower.json文件到master分支根目录

3、创建仓库tag

注册bower包到私服

在包含.bowerrc文件的目录下打开命令行,并且.bowerrc文件必须包含私服的定义

  1. cd /d xxx #xxx为包含.bowerrc文件的目录
  2. bower register name xxx.git #xxx.git为bower包项目git地址

bower包建议

对于只需要引用必要资源文件的项目可以创建单独的git分支用于bower的发布,也可以使用bower.json文件配置忽略项目。

例如:

git仓库创建专门的用于bower发布的分支,该分支仅包含发布的必要文件,排除原始代码文件、示例、脚本等。创建tag时仅对该分支创建tag。如以下范例,其中bower分支为bower包的发布分支

  • master

    • src
    • dist
    • examples
    • bower.json
    • readme.md
  • bower

    • dist
    • bower.json
  • tags->分支bower

    • 1.1.1
    • 1.1.2

客户端使用

创建基础配置

在需要通过bower管理包的项目根目录创建bower.json.bowerrc

1、创建.bowerrc

  1. #window环境下使用cmd创建
  2. type null>.bowerrc

编辑.bowerrc文件

  1. {
  2. "registry": {
  3. "register": "http://<私服 IP or URL>:5678",
  4. "search": [
  5. "http://<私服 IP or URL>:5678",
  6. "https://registry.bower.io"
  7. ]
  8. },
  9. "directory": "wwwroot/lib"
  10. }

配置说明

  • registry:register :bower register name xxx 命令的注册地址
  • registry:search : bower包搜索安装的路径
  • directory : bower包放置路径

2、创建bower.json

通过bower init命令创建bower.json。创建后添加dependencies配置节点,该节点用于应用依赖项,bower还原时自动下载依赖项。配置如下

  1. {
  2. "name": "projectname",
  3. "authors": [
  4. "xxx"
  5. ],
  6. "description": "",
  7. "main": "",
  8. "license": "MIT",
  9. "homepage": "",
  10. "ignore": [
  11. "**/.*",
  12. "node_modules",
  13. "bower_components",
  14. "wwwroot/lib",
  15. "test",
  16. "tests"
  17. ],
  18. "dependencies": {
  19. "d3": "v5.9.2"
  20. }
  21. }

bower私服部署的更多相关文章

  1. Maven-008-Nexus 私服部署发布报错 Failed to deploy artifacts: Failed to transfer file: ... Return code is: 4XX, ReasonPhrase: ... 解决方案

    我在部署构件至 maven nexus 私服时,有时会出现 Failed to deploy artifacts: Failed to transfer file: ... Return code i ...

  2. maven 向私服部署jar

    1.有源码的情况下 首先需要在要deploy的项目pom中添加私服地址 <distributionManagement> <repository> <id>nexu ...

  3. nexus私服部署

    1,下载安装包,解压,执行以下命令启动服务. nexus.exe /run 2,访问http://localhost:8081访问管理界面,添加一个maver2(proxy)的仓库,代理地址填写阿里云 ...

  4. bower配置私服nexus3

    内容来自 https://help.sonatype.com/repomanager3/bower-repositories#BowerRepositories-BrowsingBowerReposi ...

  5. docker私服搭建nexus3

    docker私服搭建有官方的registry镜像,也有改版后的NexusOss3.x,因为maven的原因搭建了nexus,所以一并将docker私服也搭建到nexus上. nexus的安装过程就单独 ...

  6. 持续集成Jenkins+sonarqube部署教程

    1 引言 1.1 文档概要 本文主要介绍jenkins,sonar的安装与集成,基于ant,maven构建.用一个例子介绍jenkins的编译打包部署,代码检查.最后集成jenkins.(现阶段只是简 ...

  7. Gradle Maven部署,转化

    参考:(易百教程)http://www.yiibai.com/gradle/gradle_deployment.html 目录: Gradle部署 Maven转化为Gradle Gradle部署: c ...

  8. Maven之私服配置

    一.配置从私服下载 从私服下载主要是将 central 库的下载地址从https://repo1.maven.org/maven2/修改为私服地址,比如http://localhost:8081/re ...

  9. 携程Apollo统一配置中心的搭建和使用

    原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...

随机推荐

  1. python-pyppeteer模块使用汇总

    一.简单代码示例 import asyncio from pyppeteer import launch async def main(): browser = await launch() page ...

  2. 工作总结汇报公司介绍产品宣传品牌展示企业文化PPT模

    清晰明了:在工作总结会议上都是要严肃为主,搞的花里胡哨既不好看也让领导有不好的影响:微粒体:模板样式立体效果非常好,能够一把将观众眼球给吸引住:样式齐全:各种PPT样式都有,能够承载工作汇报各种内容: ...

  3. FCC---Use the CSS Transform scale Property to Scale an Element on Hover

    The transform property has a variety of functions that let you scale, move, rotate, skew, etc., your ...

  4. 需要知道的jQuery对象和DOM对象之间的转换

    jQuery对象和DOM对象之间的转换 jQuery对象就是通过jQuery包装DOM对象后产生的对象. jQuery对象和DOM对象不能互相调用对方的方法或属性,但它们之间可以进行转换. 两者都无法 ...

  5. 【Gradle】自定义Android Gradle工程

    自定义Android Gradle工程 defaultConfig默认配置 defaultConfig是Android对象中的一个配置项,负责定义所有的默认配置.一个基本的defaultConfig配 ...

  6. Nginx web基础入门

    目录 Nginx web基础入门 如何升级nginx或者添加功能 使用systemd管理nginx nginx相关配置文件 nginx的配置文件详解 日志格式 game日志记录实战 日志切割 手写虚拟 ...

  7. Linux-3.14.12内存管理笔记【伙伴管理算法(1)】

    前面分析了memblock算法.内核页表的建立.内存管理框架的构建,这些都是x86处理的setup_arch()函数里面初始化的,因地制宜,具有明显处理器的特征.而start_kernel()接下来的 ...

  8. WPF 绑定属性 XAML 时间格式化

    原文:WPF 绑定属性 XAML 时间格式化 XAML 时间格式化{Binding Birthday,StringFormat='yyyy-MM-dd '} public class AssetCla ...

  9. WindowsOS下Nginx+PHP环境配置

    Nginx 配置虚拟主机 在conf目录中的nginx.conf中最后一行前面加上 include vhost/*.conf; 在conf目录中添加一个文件夹vhost(此文件夹用来保存Nginx虚拟 ...

  10. CF1269A Equation

    题目链接 题意 要找两个合数,使他们两个的差为\(n\),\(n\)为题目给出的数 思路 我们可以枚举减数\(now\),判断一下是不是质数,如果是质数就让\(now++\),然后用一个数\(tot\ ...