Use different filename for npm than “package.json”

2019-04-23 16:22发布

问题:

Is there a way to tell npm from the command line to use a different file than "package.json"?

Edit:

Thank you for your answers. I already checked the docs and hoped there was a workaround or a non-documented way to achieve that. I'll think of something else then.

回答1:

Using only client-space tools, it seems pretty straightforward you can't. npm doc is positive about this :

A package is: 
    a) a folder containing a program described by a package.json file
    b) a gzipped tarball containing (a) 
    c) a url thatresolves to (b) 
    d) a <name>@<version> that is published on theregistry with (c) 
    e) a <name>@<tag> that points to (d) 
    f) a <name>that has a "latest" tag satisfying (e) 
    g) a git url that, when cloned,results in (a).
[...]

You need to have a package.json file in the root of your project to do much of anything with npm. That is basically the whole interface.

source : npm doc

As you can see, they make it really clear a package.json is required for anything to work.

You'd have to dig into the code, for a result which would not be reusable. If it's what you want, please make it clear in your question for others to understand why it's necessary.



回答2:

Nope. As described in the npm-install docs, this is the only syntaxes you can use :

npm install (with no args in a package dir)
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install [@<scope>/]<name> [--save|--save-dev|--save-optional] [--save-exact]
npm install [@<scope>/]<name>@<tag>
npm install [@<scope>/]<name>@<version>
npm install [@<scope>/]<name>@<version range>
npm i (with any of the previous argument usage)

With no args, the command will install a folder containing a program described by a package.json file.