一尘不染

在节点模块名称中使用@符号

node.js

我正在看一位同事写的一些代码,她@在require语句中使用该符号。这是这些文件之一的第一行:

var restServer = require('@company/config')

当我尝试运行此代码时,出现错误:

Error: Cannot find module '@company/config'

坦率地说,我的目录中没有需要识别的东西!我似乎讨厌这里发生的一些魔术。

我所能猜测的是,这是我尚未接触到的一些晦涩的npm或Node技巧,或者也许是我没有得到其他一些暗黑的配置技巧。任何信息都值得赞赏,即使这只是对@require的工作方式的解释。

其他想法:主厨参与整个事情的某个地方,因此可能是相关的。

更新 :99%的人确定这是目前工作方式的问题npm config,但仍不确定如何解决它。

*基于我发现的一些东西的 *Update2

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.

阅读 268

收藏
2020-07-07

共1个答案

一尘不染

所以我自己解决了这个问题。

事实证明@company/config,这是我们的私有NPM存储库之一,托管在npm上,并由此别名定义为内部GitHub存储库:与require工作方式无关。

@对于私有NPM存储库,我可能不知道使用或可能不使用该协议,如果遇到此问题,请记住这一点。

2020-07-07