what do lines starting with double-slash '//' mean in a .npmrc?
I'd naively assumed that .npmrc lines with double slash ('//') indicate a comment, but that's clearly not the case, because when I delete them, I'm unable to publish to my local registry.
Example:
registry=https://npm.myregistry.io/
//email=me@mydomain.com
//npm.myregistry.io/:_authToken="Pgwb34F123EQdHqE7OoZA=="
If I remove the above // lines, publish results in
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
I can't find any reference to this syntax in npmrc documentation or the ini module parser documentation. I'm assuming it has something to do with synthesized properties?
node.js npm
add a comment |
I'd naively assumed that .npmrc lines with double slash ('//') indicate a comment, but that's clearly not the case, because when I delete them, I'm unable to publish to my local registry.
Example:
registry=https://npm.myregistry.io/
//email=me@mydomain.com
//npm.myregistry.io/:_authToken="Pgwb34F123EQdHqE7OoZA=="
If I remove the above // lines, publish results in
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
I can't find any reference to this syntax in npmrc documentation or the ini module parser documentation. I'm assuming it has something to do with synthesized properties?
node.js npm
add a comment |
I'd naively assumed that .npmrc lines with double slash ('//') indicate a comment, but that's clearly not the case, because when I delete them, I'm unable to publish to my local registry.
Example:
registry=https://npm.myregistry.io/
//email=me@mydomain.com
//npm.myregistry.io/:_authToken="Pgwb34F123EQdHqE7OoZA=="
If I remove the above // lines, publish results in
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
I can't find any reference to this syntax in npmrc documentation or the ini module parser documentation. I'm assuming it has something to do with synthesized properties?
node.js npm
I'd naively assumed that .npmrc lines with double slash ('//') indicate a comment, but that's clearly not the case, because when I delete them, I'm unable to publish to my local registry.
Example:
registry=https://npm.myregistry.io/
//email=me@mydomain.com
//npm.myregistry.io/:_authToken="Pgwb34F123EQdHqE7OoZA=="
If I remove the above // lines, publish results in
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`
I can't find any reference to this syntax in npmrc documentation or the ini module parser documentation. I'm assuming it has something to do with synthesized properties?
node.js npm
node.js npm
edited Nov 13 '18 at 12:58
Josh Lee
119k26214241
119k26214241
asked Nov 12 '18 at 18:15
Jolly RogerJolly Roger
2,57121719
2,57121719
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
//
has no special meaning in .npmrc
or any other .ini
file.
The ini syntax is key = value
. So in this case the key is //npm.myregistry.io/:_authToken
.
This is a Protocol-relative URL, meaning an URL that will take the protocol automatically from the current page (you can actually type //google.com
in the browser, and it should take you to https://google.com
)
Note that this may not necessarily be the URL used by npm for authentication. It's just a format chosen by the developers to hold the authToken
(or other values) in the same string with the registry URL.
1
Good explanation @mihai. However, why is the key name//npm.myregistry.io/:_authToken
instead ofnpm.myregistry.io/:_authToken
(i.e. without//
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.
– RobC
Nov 13 '18 at 14:18
1
For me, when typing//google.com
in the browser (FF, Safari, and Chrome) it resolves tofile:////google.com
– RobC
Nov 13 '18 at 14:25
1
@RobC it probably has to do with the internal logic of npm. What's stored in the.npmrc
is not necessarily the URL used for authentification, it's just a way to hold theauthToken
in a format that also contains the registry URL. Here is where the token is read in the source code.
– mihai
Nov 13 '18 at 14:38
1
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how//
is parsed in the source code and it's many RegExp's.
– RobC
Nov 13 '18 at 14:50
1
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
|
show 4 more comments
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267884%2fwhat-do-lines-starting-with-double-slash-mean-in-a-npmrc%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
//
has no special meaning in .npmrc
or any other .ini
file.
The ini syntax is key = value
. So in this case the key is //npm.myregistry.io/:_authToken
.
This is a Protocol-relative URL, meaning an URL that will take the protocol automatically from the current page (you can actually type //google.com
in the browser, and it should take you to https://google.com
)
Note that this may not necessarily be the URL used by npm for authentication. It's just a format chosen by the developers to hold the authToken
(or other values) in the same string with the registry URL.
1
Good explanation @mihai. However, why is the key name//npm.myregistry.io/:_authToken
instead ofnpm.myregistry.io/:_authToken
(i.e. without//
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.
– RobC
Nov 13 '18 at 14:18
1
For me, when typing//google.com
in the browser (FF, Safari, and Chrome) it resolves tofile:////google.com
– RobC
Nov 13 '18 at 14:25
1
@RobC it probably has to do with the internal logic of npm. What's stored in the.npmrc
is not necessarily the URL used for authentification, it's just a way to hold theauthToken
in a format that also contains the registry URL. Here is where the token is read in the source code.
– mihai
Nov 13 '18 at 14:38
1
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how//
is parsed in the source code and it's many RegExp's.
– RobC
Nov 13 '18 at 14:50
1
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
|
show 4 more comments
//
has no special meaning in .npmrc
or any other .ini
file.
The ini syntax is key = value
. So in this case the key is //npm.myregistry.io/:_authToken
.
This is a Protocol-relative URL, meaning an URL that will take the protocol automatically from the current page (you can actually type //google.com
in the browser, and it should take you to https://google.com
)
Note that this may not necessarily be the URL used by npm for authentication. It's just a format chosen by the developers to hold the authToken
(or other values) in the same string with the registry URL.
1
Good explanation @mihai. However, why is the key name//npm.myregistry.io/:_authToken
instead ofnpm.myregistry.io/:_authToken
(i.e. without//
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.
– RobC
Nov 13 '18 at 14:18
1
For me, when typing//google.com
in the browser (FF, Safari, and Chrome) it resolves tofile:////google.com
– RobC
Nov 13 '18 at 14:25
1
@RobC it probably has to do with the internal logic of npm. What's stored in the.npmrc
is not necessarily the URL used for authentification, it's just a way to hold theauthToken
in a format that also contains the registry URL. Here is where the token is read in the source code.
– mihai
Nov 13 '18 at 14:38
1
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how//
is parsed in the source code and it's many RegExp's.
– RobC
Nov 13 '18 at 14:50
1
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
|
show 4 more comments
//
has no special meaning in .npmrc
or any other .ini
file.
The ini syntax is key = value
. So in this case the key is //npm.myregistry.io/:_authToken
.
This is a Protocol-relative URL, meaning an URL that will take the protocol automatically from the current page (you can actually type //google.com
in the browser, and it should take you to https://google.com
)
Note that this may not necessarily be the URL used by npm for authentication. It's just a format chosen by the developers to hold the authToken
(or other values) in the same string with the registry URL.
//
has no special meaning in .npmrc
or any other .ini
file.
The ini syntax is key = value
. So in this case the key is //npm.myregistry.io/:_authToken
.
This is a Protocol-relative URL, meaning an URL that will take the protocol automatically from the current page (you can actually type //google.com
in the browser, and it should take you to https://google.com
)
Note that this may not necessarily be the URL used by npm for authentication. It's just a format chosen by the developers to hold the authToken
(or other values) in the same string with the registry URL.
edited Nov 13 '18 at 18:02
answered Nov 13 '18 at 12:54
mihaimihai
24.4k74069
24.4k74069
1
Good explanation @mihai. However, why is the key name//npm.myregistry.io/:_authToken
instead ofnpm.myregistry.io/:_authToken
(i.e. without//
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.
– RobC
Nov 13 '18 at 14:18
1
For me, when typing//google.com
in the browser (FF, Safari, and Chrome) it resolves tofile:////google.com
– RobC
Nov 13 '18 at 14:25
1
@RobC it probably has to do with the internal logic of npm. What's stored in the.npmrc
is not necessarily the URL used for authentification, it's just a way to hold theauthToken
in a format that also contains the registry URL. Here is where the token is read in the source code.
– mihai
Nov 13 '18 at 14:38
1
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how//
is parsed in the source code and it's many RegExp's.
– RobC
Nov 13 '18 at 14:50
1
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
|
show 4 more comments
1
Good explanation @mihai. However, why is the key name//npm.myregistry.io/:_authToken
instead ofnpm.myregistry.io/:_authToken
(i.e. without//
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.
– RobC
Nov 13 '18 at 14:18
1
For me, when typing//google.com
in the browser (FF, Safari, and Chrome) it resolves tofile:////google.com
– RobC
Nov 13 '18 at 14:25
1
@RobC it probably has to do with the internal logic of npm. What's stored in the.npmrc
is not necessarily the URL used for authentification, it's just a way to hold theauthToken
in a format that also contains the registry URL. Here is where the token is read in the source code.
– mihai
Nov 13 '18 at 14:38
1
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how//
is parsed in the source code and it's many RegExp's.
– RobC
Nov 13 '18 at 14:50
1
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
1
1
Good explanation @mihai. However, why is the key name
//npm.myregistry.io/:_authToken
instead of npm.myregistry.io/:_authToken
(i.e. without //
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.– RobC
Nov 13 '18 at 14:18
Good explanation @mihai. However, why is the key name
//npm.myregistry.io/:_authToken
instead of npm.myregistry.io/:_authToken
(i.e. without //
prefix)? Why use a Protocol-relative URL for a key name in this context of a .npmrc? Seems to me that a Protocol-relative URL would make more sense as a value and not a key.– RobC
Nov 13 '18 at 14:18
1
1
For me, when typing
//google.com
in the browser (FF, Safari, and Chrome) it resolves to file:////google.com
– RobC
Nov 13 '18 at 14:25
For me, when typing
//google.com
in the browser (FF, Safari, and Chrome) it resolves to file:////google.com
– RobC
Nov 13 '18 at 14:25
1
1
@RobC it probably has to do with the internal logic of npm. What's stored in the
.npmrc
is not necessarily the URL used for authentification, it's just a way to hold the authToken
in a format that also contains the registry URL. Here is where the token is read in the source code.– mihai
Nov 13 '18 at 14:38
@RobC it probably has to do with the internal logic of npm. What's stored in the
.npmrc
is not necessarily the URL used for authentification, it's just a way to hold the authToken
in a format that also contains the registry URL. Here is where the token is read in the source code.– mihai
Nov 13 '18 at 14:38
1
1
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how
//
is parsed in the source code and it's many RegExp's.– RobC
Nov 13 '18 at 14:50
Thanks for feedback. In the docs for .npmrc it says files are parsed by npm/ini. However I couldn't find any obvious indication of how
//
is parsed in the source code and it's many RegExp's.– RobC
Nov 13 '18 at 14:50
1
1
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
Ok, protocol-relative URLs are plausible, except that other entries also have a // that don't seem to be URIs, i.e. in my example above, there's //email=
– Jolly Roger
Nov 15 '18 at 0:45
|
show 4 more comments
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53267884%2fwhat-do-lines-starting-with-double-slash-mean-in-a-npmrc%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown