2016-07-15 38 views
1

我们有一个作用域模块,并且npm要能够解决它,我们必须说明它的回购是在哪里。这可以在IE .npmrc来完成,如:将作用域npm注册表URL定义为环境变量

@my-scope:registry=http://my-sweet-replication.example.com/npm/ 

我的问题是,由于GET请求一些代理和认证的,我必须把不同的值.npmrc发展与构建服务器(特拉维斯企业) 。我们已经利用npm可以读取未作用域的包的环境变量这一事实,但是因为@:在环境变量中都是无效字符,所以我无法导出正确的URL。

任何想法如何告诉npm在哪里寻找范围内的模块,而不把它放在.npmrc

回答

1

现在,我的解决办法是使用env命令,即(在.travis.yml

install: env '[email protected]:REGISTRY=http://my-sweet-replication.example.com/npm/' npm install 

这是唯一的办法做到这一点?

将它放到特拉维斯env基质不能正常工作,因为它使用EXPORT,所以它试图只导出REGISTRY

(张贴我的答案,因为我没有从谷歌上搜索得到任何点击)

0

手动创建用户,方法是使用适当的令牌安装~/.npmrc

首先,进入你的项目的环境,并设置一些名称的令牌。在这个例子中,我使用NPM_TOKEN,但这并不重要。有些unice会使用小写envvars,所以使用allcaps。

下一页添加以下到您.travis.yml

before_install: 
    - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > ~/.npmrc 

现在你应该有适当凭据的NPM用户。