在节点模块名称中使用@符号 [英] Use of @ symbol in Node module names
问题描述
我正在看同事写的一些代码,她在require语句中使用@
符号.这是这些文件之一的第一行:
I'm looking at some code from a coworker wrote and she's using the @
symbol in require statements. This is the first line of one of these files:
var restServer = require('@company/config')
当我尝试运行此代码时,出现错误:
When I try to run this code, I get an error:
Error: Cannot find module '@company/config'
坦率地说,我的目录中没有需要识别的东西!看来这里有些不可思议的事情,我讨厌.
Which I frankly expect, there's nothing that looks like this in my directory for require to recognize! It seems like there's some magic going on here, which I hate.
我能猜到的是,这是我没接触过的一些晦涩的npm或Node技巧,或者也许是我没有得到其他一些黑暗的配置技巧.任何信息都值得赞赏,即使只是解释@
如何与require配合使用.
All I can guess is that either this is some obscure npm or Node trick that I haven't been exposed to, or maybe that there's some other dark art of configuration that I'm not getting. Any info appreciated, even if it's just an explanation of how @
works with require.
其他想法:厨师在整个过程中都处于某个位置,所以这可能是有意义的.
Other ideas: Chef is involved somewhere in this whole thing, so that might be relevant.
更新:99%的人肯定这是npm config
目前工作方式上的问题,但仍不确定如何解决它.
Update: 99% certain this is an issue with the way npm config
works at this point, but still unsure of how to go about fixing it.
Update2 基于我发现的一些内容:
Update2 based on some stuff I uncovered:
Dereks-MacBook-Pro:project-dir derekjanni$ npm config set //registry.npmjs.org/:authtoken $SECRET_TOKEN
Dereks-MacBook-Pro:project-dir derekjanni$ npm install
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/5.5.0/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v5.5.0
npm ERR! npm v3.5.3
npm ERR! code E404
npm ERR! 404 Not found : @company/config
npm ERR! 404 '@company/config' is not in the npm registry.
推荐答案
所以我自己解决了这个问题.
So I solved this one myself.
结果证明@company/config
是我们的NPM私有存储库之一,托管在npm上,并由此别名定义为内部GitHub存储库:与require
的工作方式无关.
Turns out @company/config
is one of our private NPM repositories, hosted on npm and defined by this alias to an internal GitHub repository: it had nothing to do with how require
works.
使用@
可能是也可能不是我不知道的用于私人NPM仓库的协议,如果您遇到此问题,请记住这一点.
Using @
may or may not be a protocol that I was unaware of for private NPM repos, keep that in mind if you run into this.
这篇关于在节点模块名称中使用@符号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!