是否有自动构建包的方法。json文件用于Node.js项目

是包。Json应该手动编辑?像npm这样的程序不能只查看文件,看到“require”语句,然后使用它将必要的条目放入包中吗?json文件吗?有这样的节目吗?

327050 次浏览

我只是写了一个简单的脚本来收集./node_modules中的依赖项。它满足了我目前的要求。这可能会对其他人有所帮助,我贴在这里。

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();

在我的例子中,上面的脚本输出:

"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.

现在,你可以复制粘贴它们。玩得开心!

包。npm使用json文件来了解你的node.js项目。

使用npm init生成包。Json文件!

它与npm捆绑在一起。这里阅读它的文档:https://docs.npmjs.com/cli/init

此外,还有一个官方工具可以用于以编程方式生成该文件:https://github.com/npm/init-package-json

首先,运行

npm init

...会问你一些关于你的项目/包的问题(先读这篇文章),然后生成一个包。Json文件。

然后,一旦你有了一个包。Json文件,使用

npm install <pkg> --save

npm install <pkg> --save-dev

...来安装一个依赖项并自动将它附加到你的package.jsondependencies列表中。

(注意:您可能需要手动调整依赖项的版本范围。)

npm init

创建包。Json文件,然后使用

ls node_modules/ | xargs npm install --save

填写node_modules文件夹中的模块。

Edit: @paldepind指出第二个命令是多余的,因为npm init现在自动添加你在node_modules/文件夹中的内容。我不知道是不是一直都是这样,但至少现在,它不需要第二个命令就能工作。

命令行:

npm init

将创建包。json文件

安装,更新和卸载依赖包到包。json文件:

命令行:

npm install <pkg>@* --save

将自动将依赖项下的包的最新版本添加到包中。json文件

例:

npm install node-markdown@* --save

命令行:

npm install <pkg> --save

还会自动将依赖项下的包的最新版本添加到包中。json文件

如果你需要一个包的特定版本,使用这个命令行:

npm install <pkg>@<version> --save

将自动添加特定版本的包在依赖到包。json文件

例:

npm install koa-views@1.0.0 --save

如果你需要一个包的特定版本范围,使用这个命令行:

npm install <pkg>@<version range>

将自动在依赖项下的版本范围内为包添加最新版本到包中。json文件

例:

npm install koa-views@">1.0.0 <1.2.0" --save

更多关于如何为包npm医生编写版本的详细信息

命令行:

npm update --save

将包更新为包。Json文件,并将自动添加更新版本下的所有包依赖到包。json文件

命令行:

npm uninstall <pkg> --save

将自动将包从依赖项移到包中。并从node_module文件夹中删除包

基于Pylinux的回答,下面是针对Windows操作系统的解决方案,

dir node_modules > abc.txt
FOR /F %k in (abc.txt) DO npm install --save

希望能有所帮助。

现在,您可以通过3个简单步骤在节点终端上使用Yeoman -现代Web应用程序脚手架工具

首先,你需要安装yo和其他必要的工具:

$ npm install -g yo bower grunt-cli gulp

要构建一个web应用程序,请安装generator-webapp生成器:

$ npm install -g generator-webapp  // create scaffolding

跑啊,然后…你都完成了:

$ yo webapp  // create scaffolding

Yeoman可以为您的整个web应用程序或控制器和模型编写样板代码。它可以启动实时预览web服务器进行编辑和编译;不仅如此,您还可以运行您的单元测试,最小化和连接您的代码,优化图像,等等……

< a href = " http://yeoman。io/" rel="noreferrer">Yeoman (yo) . io/" rel="noreferrer"> -脚手架工具,提供特定于框架的脚手架生态系统,称为生成器,可用于执行前面提到的一些乏味的任务。

Grunt / gulp -用来构建、预览和测试你的项目。

< a href = " http://bower。io / noreferrer“rel = >鲍尔< / > -用于依赖管理,这样你就不再需要手动下载你的前端库。

使用NPM init -f命令生成包在每个命令之后保存,这样每个模块都会在package.json中自动更新 例如:NPM install express——save

运行npm init -y使你的package.json包含所有默认值。
然后你可以相应地改变package.json
通过防止在npm init

中的每个命令上按enter,可以节省大量时间

1. 选择

如果你git和GitHub用户:

< >强generate-package < / >强npm init更简单。

其他的

和/或你不喜欢package.json模板,即生成包或npm init生成:

你可以通过搭建应用生成自己的模板< >强生成< / >强< >强帆< / >强< >强自耕农< / >强


2. 相关性

这个答案与2018年3月有关。在未来,来自这个答案的数据可能会过时。

这个答案的作者个人在2018年3月使用了generate-package。


3.限制

你需要使用git和GitHub来使用生成包。


4. 示范

例如,我创建了空白文件夹sasha-npm-init-vs-generate-package

4.1. generate-package

命令:

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

package.json:

{
"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 init

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
{
"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"
}

我认为,generate-package更简单地说,就是npm init


5. 定制

创建自己的package.json模板,参见< >强生成< / >强< >强自耕农< / >强示例。

npm add <package-name>

上面的命令将把包添加到节点模块并更新包。json文件

简单回答:将现有安装的npm模块添加到不存在的package.json中,使用

npm init -y

然后你就可以做了

npm i <module-name>

并将该模块添加到package.json

不,它不是。

是的,有可能。

是的,有。

有时,当您注释掉代码或尝试尝试新模块时,实验并不奏效。然后,在package.json中有额外的垃圾。下面的过程清除它,产生一个你实际使用的干净列表和一个干净的node_modules文件夹。

[Linux]从项目重建package.json依赖项

安装

  1. [终端]安装自动安装程序:sudo npm install -g auto-install

使用

  1. [IDE]注释/删除你的js文件中失败的实验
  2. [终端]进入项目文件夹:cd <project folder>
  3. [终端]移除节点模块:rm -rf node_modules
  4. [终端]运行自动安装程序:auto-install。注意错误。
  5. [Terminal]终止观察者:CTRL+C
  6. [终端]修复漏洞:npm audit fix --force
  7. [终端]修复自动安装的错误
  8. [终端]如果有错误,返回“运行自动安装程序”。一步

自动化

    <李> [VS代码][快捷键。添加键盘快捷键到键绑定数组:
     . json
    {
    “key":“ctrl + alt + a"
    “command":“workbench.action.terminal.sendSequence"
    “args": {
    “text":“没有\ u000D"
    }
    },
    李以前< / > < / >
    

警告

  1. 我猜auto-install是pre-async/await。如果一个文件包含这些,它将无法解析该js文件,然后它将自动删除仅在该文件中引用的任何依赖项。您可以添加
    var autoInstallKeep = {
    foo:要求(“foo”)
    }
    
    以防止模块foo由于解析错误而自动卸载