当前位置: 首页 > 面试题库 >

为嵌套文件夹运行npm install的最佳方法?

海新霁
2023-03-14
问题内容

npm packages在嵌套子文件夹中安装的最正确方法是什么?

my-app
  /my-sub-module
  package.json
package.json

什么是有最好的方式packages/my-sub-module,当被自动安装npm install在运行my-app


问题答案:

如果要运行单个命令以将npm软件包安装在嵌套的子文件夹中,则可以通过npm和main
package.json在根目录中运行脚本。该脚本将访问每个子目录并运行npm install

下面是一个.js可以达到预期效果的脚本:

var fs = require('fs')
var resolve = require('path').resolve
var join = require('path').join
var cp = require('child_process')
var os = require('os')

// get library path
var lib = resolve(__dirname, '../lib/')

fs.readdirSync(lib)
  .forEach(function (mod) {
    var modPath = join(lib, mod)
// ensure path has package.json
if (!fs.existsSync(join(modPath, 'package.json'))) return

// npm binary based on OS
var npmCmd = os.platform().startsWith('win') ? 'npm.cmd' : 'npm'

// install folder
cp.spawn(npmCmd, ['i'], { env: process.env, cwd: modPath, stdio: 'inherit' })
})

请注意,这是一个摘自StrongLoop文章的示例,该文章专门解决了模块化node.js项目结构(包括嵌套的组件和package.json文件)。

如建议的那样,您还可以使用bash脚本实现相同的目的。

编辑:使代码在Windows中工作



 类似资料:
  • 问题内容: 我正在使用node-webkit,并试图让用户选择一个文件夹,然后返回该文件夹的目录结构并递归获取其子级。 我已经用这个代码(在Angular Controller中)相当简单地工作了。 取一个中等大小的文件夹,其中包含22个子文件夹,深度约为4层,这需要几分钟的时间来获取整个目录结构。 我在这里显然做错了什么吗?看到我正在使用内置的Node fs方法,我简直不敢花这么长时间。还是有一

  • 问题内容: 我正在编写一个SQL查询,其中需要根据相当多的条件来计算返回的一些列。 我目前正在使用嵌套的case语句,但是它变得凌乱。有没有更好(更有条理和/或更易读)的方法? (我使用的是Microsoft SQL Server,2005) 一个简化的例子: 问题答案: 您可以尝试某种COALESCE技巧,例如:

  • 问题内容: 我有一个本质上相当于嵌套字典的数据结构。假设它看起来像这样: 现在,维护和创建它非常痛苦。每当我有一个新的州/县/专业时,我都必须通过讨厌的块创建较低层的字典。此外,如果要遍历所有值,则必须创建烦人的嵌套迭代器。 我也可以使用元组作为键,例如: 这使得对值的迭代非常简单自然,但是在语法上进行诸如汇总和查看字典子集之类的操作在语法上更加痛苦(例如,如果我只是想逐个查看状态的话)。 基本上

  • 如果我们有一个文件夹,其中包含所有内容。txt文件,我们可以使用sc.textFile(“folder/*.txt”)读取所有这些文件。但是,如果我有一个文件夹,其中包含更多名为datewise的文件夹,例如,,。。。,其中还包含一些<代码>。记录文件。如何在Spark中阅读这些内容? 在我的例子中,结构更加嵌套

  • 问题内容: 打破Javascript中的嵌套循环的最佳方法是什么? 问题答案: 就像Perl一样 如EMCA-262第12.12节所定义。[MDN文件] 与C不同,这些标签只能用于和,而Javascript没有。

  • 问题内容: 我想用 gulp.js 观看目录中的所有内容,但.min.ext文件 除外 。过滤掉这些的最佳方法是什么? 例: 编辑: 如果没有外部软件包就无法完成,哪一个是最有名的? 问题答案: 内部使用(请参阅源代码),内部使用,自身使用,因此您应该能够使用忽略某些文件。 实际上,甚至在vinyl-fs的自述文件中对此进行了描述: