bower私服部署
bower私服部署
简介
1、私服服务器:private-bower
2、包管理模式:git
工具清单
- nodejs
- git
- private-bower
安装
安装nodejs
已安装nodejs可忽略本节内容
1、下载nodejs 程序包
打开nodejs官网下载页面https://nodejs.org/en/download/。右键复制Linux Binaries (x64)的下载链接。执行以下代码下载,并解压
cd ~
#注意:当前下载版本为v10.15.3
#下载
wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz
#解压
xz -d node-v10.15.3-linux-x64.tar.xz
#注意:xz 命令执行后node-v10.15.3-linux-x64.tar.xz被输出为node-v10.15.3-linux-x64.tar
tar -xvf node-v10.15.3-linux-x64.tar
#移动node程序文件夹到/opt/nodejs/v10
mv ./node-v10.15.3-linux-x64 /opt/nodejs/v10
2、添加nodejs path到$PATH
#通过修改profile文件:
vim /etc/profile
#找到设置PATH的行
/export PATH
#在export PATH之前,添加环境变量
PATH=/opt/node/v10/bin:$PATH
#保存
#生效方法:系统重启
#有效期限:永久有效
#用户局限:对所有用户
#执行以下命令使之立即生效
source /etc/profile
#或 执行点命令
/etc/profile
#执行以下命令测试nodejs是否已经正确安装
node --version
安装git
yum install -y git git-daemon
安装private-bower
npm install -g private-bower
配置private-bower
cd /opt
mkdir ./private-bower
vi mybowerconfig.json
mybowerconfig.json 配置范例如下:
{
"port": 5678,
"registryFile": "/opt/private-bower/bowerRepository.json",
"timeout": 144000,
"public": {
"disabled": false,
"registry": "http://https://registry.bower.io",
"registryFile": "/opt/private-bower/bowerRepositoryPublic.json",
"whitelist": [],
"blacklist": []
},
"authentication": {
"enabled": false,
"key": "password"
},
"repositoryCache": {
"cachePrivate": false,
"git": {
"enabled": false,
"cacheDirectory": "/opt/private-bower/gitRepoCache",
"host": "localhost",
"port": 6789,
"publicAccessURL" : null,
"refreshTimeout": 10
},
"svn": {
"enabled": false,
"cacheDirectory": "/opt/private-bower/svnRepoCache",
"host": "localhost",
"port": 7891,
"publicAccessURL" : null,
"refreshTimeout": 10
}
},
"proxySettings" : {
"enabled": false,
"host": "proxy",
"username": "name",
"password" : "pass",
"port": 8080,
"tunnel": false
},
"log4js" : {
"enabled": true,
"configPath" : "/opt/private-bower/log4js.conf.json"
}
}
mybowerconfig.json关键配置说明
- port:外部网络访问端口
- registryFile:通过
bower register name xxx命令注册bower包的记录文件 - log4js:configPath :日志配置
log4js.conf.json 配置
{
"appenders": [
{
"type": "dateFile",
"filename": "private-bower.log",
"pattern": "-yyyy-MM-dd",
"alwaysIncludePattern": false
},
{
"type": "console"
}
],
"replaceConsole": true
}
启动private-bower
cd /opt/private-bower
private-bower --config ./mybowerconfig.json
开放端口
#以下代码为centos7
# 开放端口
firewall-cmd --zone=public --add-port=5678/tcp --permanent
# 更新规则
firewall-cmd --reload
# 启动|关闭|重新启动 防火墙,(注意:如果执行`firewall-cmd --reload`命令后仍无法访问则重启服务
systemctl [start|stop|restart] firewalld.service
开机启动/注册为服务
略
private-bower测试
1、创建.bowerrc文件
如果window下无法通过资源管理器创建时在命令行中(cmd)中执行以下代码
type null>.bowerrc
2、编辑以下内容
{"registry":"http://<bower私服ip地址>:5678"}
3、在命令行中执行以下命令测试
bower search jquery
创建bower包
创建bower包需要满足以下条件
- git :bower包依赖git仓库,公网可以选择github,私服可以搭建gitlab
- git仓库的tags使用标准版本号格式 :bower 通过读取git仓库tags识别bower版本号。版本号建议使用标准版本号格式,即
xx.xx.xx[.xx],并且支持v作为前缀的版本号。有效tag如:1.1.0、v1.1.1 - git仓库根目录包含
bower.json:该文件声明bower包的相关信息
创建bower.json
# 执行以下命令,根据提示输入即可
bower init
bower.json文件基本结构
{
"name": "bower_name",
"authors": [
"xxx"
],
"description": "",
"main": "",
"license": "MIT",
"homepage": "",
"private": false,
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"test",
"tests"
]
}
创建git仓库
基本流程
1、创建仓库
2、添加bower.json文件到master分支根目录
3、创建仓库tag
注册bower包到私服
在包含.bowerrc文件的目录下打开命令行,并且.bowerrc文件必须包含私服的定义
cd /d xxx #xxx为包含.bowerrc文件的目录
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
#window环境下使用cmd创建
type null>.bowerrc
编辑.bowerrc文件
{
"registry": {
"register": "http://<私服 IP or URL>:5678",
"search": [
"http://<私服 IP or URL>:5678",
"https://registry.bower.io"
]
},
"directory": "wwwroot/lib"
}
配置说明
- registry:register :bower register name xxx 命令的注册地址
- registry:search : bower包搜索安装的路径
- directory : bower包放置路径
2、创建bower.json
通过bower init命令创建bower.json。创建后添加dependencies配置节点,该节点用于应用依赖项,bower还原时自动下载依赖项。配置如下
{
"name": "projectname",
"authors": [
"xxx"
],
"description": "",
"main": "",
"license": "MIT",
"homepage": "",
"ignore": [
"**/.*",
"node_modules",
"bower_components",
"wwwroot/lib",
"test",
"tests"
],
"dependencies": {
"d3": "v5.9.2"
}
}
bower私服部署的更多相关文章
- 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 ...
- maven 向私服部署jar
1.有源码的情况下 首先需要在要deploy的项目pom中添加私服地址 <distributionManagement> <repository> <id>nexu ...
- nexus私服部署
1,下载安装包,解压,执行以下命令启动服务. nexus.exe /run 2,访问http://localhost:8081访问管理界面,添加一个maver2(proxy)的仓库,代理地址填写阿里云 ...
- bower配置私服nexus3
内容来自 https://help.sonatype.com/repomanager3/bower-repositories#BowerRepositories-BrowsingBowerReposi ...
- docker私服搭建nexus3
docker私服搭建有官方的registry镜像,也有改版后的NexusOss3.x,因为maven的原因搭建了nexus,所以一并将docker私服也搭建到nexus上. nexus的安装过程就单独 ...
- 持续集成Jenkins+sonarqube部署教程
1 引言 1.1 文档概要 本文主要介绍jenkins,sonar的安装与集成,基于ant,maven构建.用一个例子介绍jenkins的编译打包部署,代码检查.最后集成jenkins.(现阶段只是简 ...
- Gradle Maven部署,转化
参考:(易百教程)http://www.yiibai.com/gradle/gradle_deployment.html 目录: Gradle部署 Maven转化为Gradle Gradle部署: c ...
- Maven之私服配置
一.配置从私服下载 从私服下载主要是将 central 库的下载地址从https://repo1.maven.org/maven2/修改为私服地址,比如http://localhost:8081/re ...
- 携程Apollo统一配置中心的搭建和使用
原文链接:https://blog.csdn.net/luhong327/article/details/81453001 一.Apollo配置中心介绍 1.What is Apollo 1.1 Ap ...
随机推荐
- ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)
在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...
- automaticallyAdjustsScrollViewInsets
参考链接: https://www.jianshu.com/p/a1987a7c11ba
- 安装SQL数据库时遇到问题。需要更新以前的visual studio 2010实例
安装SQL数据库时遇到问题.需要更新以前的visual studio 2010实例此计算机安装了需要service pack 1更新的visual 2010,必须安装此更新才能成功安装选择的SQL s ...
- Linux-3.14.12内存管理笔记【构建内存管理框架(2)】
前面构建内存管理框架,已经将内存管理node节点设置完毕,接下来将是管理区和页面管理的构建.此处代码实现主要在于setup_arch()下的一处钩子:x86_init.paging.pagetable ...
- go语言设计模式之Concurrency workers pool
worker.go package main import ( "fmt" "strings" ) type WorkerLauncher interface ...
- java 通过Qrcode生成二维码添加图片logo和文字描述
/** * 二维码创建 * @author yhzm * */ public class printServiceImpl extends BaseService { public void barC ...
- 机器学习--主成分分析(PCA)算法的原理及优缺点
一.PCA算法的原理 PCA(principle component analysis),即主成分分析法,是一个非监督的机器学习算法,是一种用于探索高维数据结构的技术,主要用于对数据的降维,通过降维可 ...
- C++ 数据类型判断 typeid
#include <iostream> // typeid testing //////////////////////////////////////////////////////// ...
- CF785D Anton and School - 2
题目链接 problem 给出一个括号序列,要求删除一些括号使得剩下的括号序列是个匹配的括号序列,且改括号序列左边全部为左括号,右边全部为右括号. solution 考虑枚举左右括号交界的位置\(x\ ...
- Python程序中的线程操作-线程队列
目录 一.线程队列 二.先进先出 三.后进先出 四.存储数据时可设置优先级的队列 4.1 优先级队列 4.2 更多方法说明 一.线程队列 queue队列:使用import queue,用法与进程Que ...