如何安装不在 package.json 中的 npm 依赖项?

古巴塞克·杜齐

我有问题npm install我想安装我的项目中使用的所有依赖项。package.json那里没有任何依赖项,但是在我的项目文件中,例如我const mongo=require('mongoose')在另一个文件中const morgan=require('morgan')等等。

我知道在输入时npm i --save <dependency_name>它会更新我的package.json. 但是我想安装所有依赖项,而无需在任何地方明确键入它们的名称。

有什么方法可以安装整个项目中使用的所有依赖项,但在package.json.

火花喷泉

它并不是要先编写您的程序代码,然后让 NPM 找到所有使用的依赖项。这是因为一个简单的原因:在您可以使用外部库/包之前,您必须先下载它,否则您根本无法使用它。

现在,我只看到您的用例的两个原因:

  • 您复制并粘贴了一些没有所有文件的外国代码,尤其是 no package.json,或者
  • 您“继承”了一些前雇员或团队的代码,这些代码没有记录在案并且由不相关、不一致的文件组成。

无论如何,您的问题会有一些解决方案:

  1. 讨厌的解决方案:运行npm start并查看您收到什么错误消息。将找不到所有已卸载的依赖项,因此您将看到包名称并可以将它们手动添加到package.json. 这会变得很糟糕,因为您每次都必须重新运行程序。为避免这种情况,您可以查看Nodemon,它会自动重新启动您的程序。

  2. 更好的解决方案:打开您喜欢的 Web IDE 并使用“全局搜索”功能查找所有出现的 string require(,或作为 Regex: require\((.+)\)这将列出程序文件中的所有依赖项导入。如果还应该有 ECMA 6 导入,还可以搜索import (.+) from (.+). - 但是,您仍然需要手动将所有文件中的所有依赖项名称复制并粘贴到您的package.json文件中。

  3. 最好但最复杂的解决方案:编写一个 Node.js 脚本,从项目根目录开始,递归扫描所有文件创建一个依赖内存变量,比如let dependencies = []. 读取所有*.js文件(同步或异步),每次匹配requireorimport语句时,检查依赖项是否已经在您的dependencies数组中。如果没有,请推它。最后,您的所有项目依赖项都将列在dependencies数组中,您可以将它们复制并粘贴到您的package.json.

伪 Node.js 代码:

const lineReader = require('line-reader');

let dependencies = [];
const regex = /require\(['|"](.+)['|"]\)/g;

lineReader.eachLine('/path/to/file', function(line) {
  const match = regex.exec(line);
  if(match) {
    if(dependencies.indexOf(match[1]) === -1) {
      dependencies.push(match[1]);
    }
  }
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

NPM从package.json安装依赖项

来自分类Dev

npm链接,而不是安装,package.json依赖项

来自分类Dev

如何在package.json中强制嵌套npm依赖项

来自分类常见问题

将模块从devDependencies移至npm package.json中的依赖项

来自分类Dev

npm init之后,package.json文件中没有依赖项

来自分类Dev

npm uninstall * 命令是否会在卸载 package.json 的依赖项的同时删除全局安装?

来自分类Dev

使用 package-lock.json 为特定节点版本安装 npm 依赖项

来自分类Dev

仅当未缓存依赖项或在gitlab ci中更改package.json时,如何才能运行依赖项安装工作?

来自分类Dev

指定应在package.json中安装不带有可选依赖项的软件包

来自分类Dev

需要从package.json安装和卸载Webstorm中的依赖项

来自分类Dev

需要从package.json安装和卸载Webstorm中的依赖项

来自分类Dev

docker build中的本地npm依赖项“不包含package.json文件”,但与npm start一起运行良好

来自分类Dev

WebStorm:模块未在package.json依赖项中列出

来自分类Dev

本地git作为package.json中的依赖项

来自分类Dev

在package.json中包含依赖项时遇到麻烦

来自分类Dev

在docker中安装npm依赖项并从卷进行测试

来自分类Dev

如何在链接的npm依赖项(开发中)和已安装的依赖项(登台/生产中)之间切换?

来自分类Dev

稍后如何向package.json添加依赖项

来自分类Dev

可以将选项添加到npm package.json依赖项吗?

来自分类Dev

npm install不会将依赖项保存到package.json

来自分类Dev

npm:将依赖项写入“ package.json”所必需的“ --save”标志吗?

来自分类Dev

子package.json中的根package.json未满足依赖项

来自分类Dev

在NPM中查找依赖项的根目录

来自分类Dev

尝试安装依赖项,但是在解析JSON文件时npm给出错误

来自分类Dev

npm install不安装任何依赖项

来自分类Dev

通过NPM安装私有依赖项

来自分类Dev

NPM仅安装后的依赖项

来自分类Dev

如何覆盖composer.json中的其他依赖项

来自分类Dev

Node.js的package.json中未显示依赖项

Related 相关文章

  1. 1

    NPM从package.json安装依赖项

  2. 2

    npm链接,而不是安装,package.json依赖项

  3. 3

    如何在package.json中强制嵌套npm依赖项

  4. 4

    将模块从devDependencies移至npm package.json中的依赖项

  5. 5

    npm init之后,package.json文件中没有依赖项

  6. 6

    npm uninstall * 命令是否会在卸载 package.json 的依赖项的同时删除全局安装?

  7. 7

    使用 package-lock.json 为特定节点版本安装 npm 依赖项

  8. 8

    仅当未缓存依赖项或在gitlab ci中更改package.json时,如何才能运行依赖项安装工作?

  9. 9

    指定应在package.json中安装不带有可选依赖项的软件包

  10. 10

    需要从package.json安装和卸载Webstorm中的依赖项

  11. 11

    需要从package.json安装和卸载Webstorm中的依赖项

  12. 12

    docker build中的本地npm依赖项“不包含package.json文件”,但与npm start一起运行良好

  13. 13

    WebStorm:模块未在package.json依赖项中列出

  14. 14

    本地git作为package.json中的依赖项

  15. 15

    在package.json中包含依赖项时遇到麻烦

  16. 16

    在docker中安装npm依赖项并从卷进行测试

  17. 17

    如何在链接的npm依赖项(开发中)和已安装的依赖项(登台/生产中)之间切换?

  18. 18

    稍后如何向package.json添加依赖项

  19. 19

    可以将选项添加到npm package.json依赖项吗?

  20. 20

    npm install不会将依赖项保存到package.json

  21. 21

    npm:将依赖项写入“ package.json”所必需的“ --save”标志吗?

  22. 22

    子package.json中的根package.json未满足依赖项

  23. 23

    在NPM中查找依赖项的根目录

  24. 24

    尝试安装依赖项,但是在解析JSON文件时npm给出错误

  25. 25

    npm install不安装任何依赖项

  26. 26

    通过NPM安装私有依赖项

  27. 27

    NPM仅安装后的依赖项

  28. 28

    如何覆盖composer.json中的其他依赖项

  29. 29

    Node.js的package.json中未显示依赖项

热门标签

归档