Node.js 使用NPM作为具有平面层次结构的构建工具?

Node.js 使用NPM作为具有平面层次结构的构建工具?,node.js,npm,gulp,bower,Node.js,Npm,Gulp,Bower,在用Node.js、NPM、Bower和Gulp(更不用说实际的libs)拼凑开发环境几天后,我遇到了这两篇关于如何将NPM用作构建工具的文章: 文章的实质;要用作npm lint: "devDependencies": { "jshint": "latest", }, "scripts": { "lint": "jshint **.js" } 为了获得高效的客户端包,我使用了Gulp,因为它提供了扁平的依赖层次结构。但是,将开发环境简化为节点/NPM很有诱惑力。有没有

在用Node.js、NPM、Bower和Gulp(更不用说实际的libs)拼凑开发环境几天后,我遇到了这两篇关于如何将NPM用作构建工具的文章:

文章的实质;要用作
npm lint

"devDependencies": {
    "jshint": "latest",
},
"scripts": {
    "lint": "jshint **.js"
}

为了获得高效的客户端包,我使用了Gulp,因为它提供了扁平的依赖层次结构。但是,将开发环境简化为节点/NPM很有诱惑力。有没有一种方法可以只使用NPM就获得平坦的依赖层次结构?

较新版本的NPM(3.x)提供了一个更平坦的依赖层次结构,尽可能平坦,而不存在版本冲突。我想知道的是,为什么在您的情况下平坦很重要。通常,当使用NPM拉入客户端模块时,您可以使用gulp/grunt之类的方法将所需文件从节点_模块复制到公用文件夹中。如果没有这个步骤,您将不得不发送node_modules文件夹(或者至少重命名它),这意味着您的产品构建中将有许多额外的文件。您不需要源文件,只需要为客户端工作编译的源文件。当然,您也可以使用npm很好地管理这一部分,不过对我来说,如果您有很多东西需要移动/缩小/压缩等,那么维护起来就有点困难。这里的要点是,如果npm真的可以完成大部分工作,那么就避免咕噜声/咕噜声。在构建之前,我没有想过将所需的lib复制到公共文件夹中。不完全是我所希望的,但绝对可行。这是一个规模问题。如果您的项目只需要移动一个模块,那么很容易。但是如果你需要15个,它会变得一团糟。