Is there a way to automatically build the package.json file for Node.js projects
package.json是否应该手动编辑?像NPM这样的程序不能只查看文件,查看"require"语句,然后用它将必要的条目放入package.json文件中吗?有这样的节目吗?
npm使用package.json文件了解node.js项目。
使用
它与NPM捆绑在一起。请阅读以下文档:https://docs.npmjs.com/cli/init
另外,还有一个官方工具可以用来以编程方式生成这个文件:https://github.com/npm/init-package-json
首先,快跑
1 | npm init |
…将询问您一些关于您的项目/包的问题(首先阅读本文),然后为您生成package.json文件。
然后,一旦您有了package.json文件,就可以使用
1 | npm install <pkg> --save |
。
或
1 | npm install <pkg> --save-dev |
…安装依赖项并自动将其附加到您的
(注意:您可能需要手动调整依赖项的版本范围。)
我刚刚编写了一个简单的脚本来收集./node_模块中的依赖项。它现在满足了我的要求。这可能对其他人有帮助,我把它贴在这里。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | var fs = require("fs"); function main() { fs.readdir("./node_modules", function (err, dirs) { if (err) { console.log(err); return; } dirs.forEach(function(dir){ if (dir.indexOf(".") !== 0) { var packageJsonFile ="./node_modules/" + dir +"/package.json"; if (fs.existsSync(packageJsonFile)) { fs.readFile(packageJsonFile, function (err, data) { if (err) { console.log(err); } else { var json = JSON.parse(data); console.log('"'+json.name+'":"' + json.version + '",'); } }); } } }); }); } main(); |
在我的例子中,上面的脚本输出:
1 2 3 4 5 6 7 | "colors":"0.6.0-1", "commander":"1.0.5", "htmlparser":"1.7.6", "optimist":"0.3.5", "progress":"0.1.0", "request":"2.11.4", "soupselect":"0.2.0", // Remember: remove the comma character in the last line. |
号
现在,您可以复制和粘贴它们。玩得高兴!
创建package.json文件,然后使用
江户十一〔四〕号
填写node_modules文件夹中的模块。
编辑:@paldepind指出第二个命令是多余的,因为
命令行:
1 | npm init |
将创建package.json文件
要将依赖项下的包安装、更新和卸载到package.json文件中,请执行以下操作:
命令行:
1 | npm install <pkg>@* --save |
。
将在dependencies下自动将包的最新版本添加到package.json文件中
前任:
1 | npm install node-markdown@* --save |
命令行:
1 | npm install <pkg> --save |
。
还将自动将依赖项下包的最新版本添加到package.json文件中。
如果需要包的特定版本,请使用以下命令行:
1 | npm install <pkg>@<version> --save |
将在dependencies下自动将特定版本的包添加到package.json文件中
前任:
1 | npm install [email protected] --save |
。
如果需要包的特定版本范围,请使用以下命令行:
1 | npm install <pkg>@<version range> |
号
将在依赖项下的版本范围内自动将包的最新版本添加到package.json文件中
前任:
1 | npm install koa-views@">1.0.0 <1.2.0" --save |
号
有关如何编写包NPM文档版本的详细信息
命令行:
1 | npm update --save |
号
将更新package.json文件中的包,并自动将依赖项下所有包的更新版本添加到package.json文件中。
命令行:
1 | npm uninstall <pkg> --save |
号
将自动从依赖项中删除package.json文件中的包,并从node_module文件夹中删除包。
运行
现在,您可以在节点终端上使用Yeoman-现代Web应用程序脚手架工具,只需3个简单的步骤。
首先,您需要安装yo和其他必需的工具:
1 | $ npm install -g yo bower grunt-cli gulp |
号
要搭建Web应用程序,请安装Generator Web应用程序生成器:
1 | $ npm install -g generator-webapp // create scaffolding |
号
快跑,哟……你们都完成了:
1 | $ yo webapp // create scaffolding |
号
Yeoman可以为整个Web应用程序或控制器和模型编写样板代码。它可以启动实时预览Web服务器进行编辑和编译;不仅如此,您还可以运行单元测试、最小化和连接代码、优化图像等等…
yeoman(yo)-一种脚手架工具,它提供了一个特定于框架的脚手架生态系统,称为生成器,可用于执行前面提到的一些繁琐的任务。
咕噜/咕噜-用于构建、预览和测试项目。
bower-用于依赖关系管理,这样您就不再需要手动下载前端库了。
基于pylinux的答案,下面是一个针对Windows操作系统的解决方案,
1 2 | dir node_modules > abc.txt FOR /F %k in (abc.txt) DO npm install --save |
号
希望有帮助。
使用命令npm init-f生成package.json文件,然后在每个命令之后使用--save,以便每个模块在package.json中自动得到更新。例如:npm install express--save
1。选择
如果您是Git和Github用户:
?????
其他的
和/或您不喜欢生成包的
?????您可以通过脚手架应用程序生成自己的模板,如generate、sails或yeoman。
2。关联此答案适用于2018年3月。将来,此答案中的数据可能会过时。
该答案的作者在2018年3月亲自使用了生成包。
三。限制您需要使用git和github来使用生成包。
4。演示例如,我创建空白文件夹
命令:
1 2 3 4 5 6 7 8 | D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package>gen package [16:58:52] starting generate [16:59:01] √ running tasks: [ 'package' ] [16:59:04] starting package ? Project description? generate-package demo ? Author's name? Sasha Chernykh ? Author's URL? https://vk.com/hair_in_the_wind [17:00:19] finished package √ 1m |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | { "name":"sasha-npm-init-vs-generate-package", "description":"generate-package demo", "version":"0.1.0", "homepage":"https://github.com/Kristinita/sasha-npm-init-vs-generate-package", "author":"Sasha Chernykh (https://vk.com/hair_in_the_wind)", "repository":"Kristinita/sasha-npm-init-vs-generate-package", "bugs": { "url":"https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues" }, "license":"MIT", "engines": { "node":">=4" }, "scripts": { "test":"mocha" }, "keywords": [ "generate", "init", "npm", "package", "sasha", "vs" ] } |
号4.2。NPM初始化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package>npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (sasha-npm-init-vs-generate-package) version: (1.0.0) 0.1.0 description: npm init demo entry point: (index.js) test command: mocha git repository: https://github.com/Kristinita/sasha-npm-init-vs-generate-package keywords: generate, package, npm, package, sasha, vs author: Sasha Chernykh license: (ISC) MIT About to write to D:\SashaDemoRepositories\sasha-npm-init-vs-generate-package\package.json: { "name":"sasha-npm-init-vs-generate-package", "version":"0.1.0", "description":"npm init demo", "main":"index.js", "scripts": { "test":"mocha" }, "repository": { "type":"git", "url":"git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git" }, "keywords": [ "generate", "package", "npm", "package", "sasha", "vs" ], "author":"Sasha Chernykh", "license":"MIT", "bugs": { "url":"https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues" }, "homepage":"https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme" } Is this ok? (yes) y |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | { "name":"sasha-npm-init-vs-generate-package", "version":"0.1.0", "description":"npm init demo", "main":"index.js", "scripts": { "test":"mocha" }, "repository": { "type":"git", "url":"git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git" }, "keywords": [ "generate", "package", "npm", "package", "sasha", "vs" ], "author":"Sasha Chernykh", "license":"MIT", "bugs": { "url":"https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues" }, "homepage":"https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme" } |
。
我认为,
创建您自己的