我正在尝试总结我对最流行的JavaScript包管理器,捆绑包和任务运行器的了解.如果我错了,请纠正我:
npm&bower是包管理员.他们只是下载依赖项,不知道如何自己构建项目.他们知道的是在获取所有依赖项之后调用webpack/ gulp/ grunt.bower就像npm,但是构建了扁平的依赖树(不像npm递归那样).含义npm获取每个依赖项的依赖项(可能会获取相同的几次),同时bower期望您手动包含子依赖项.有时bower并npm分别用于前端和后端(因为每兆字节在前端可能很重要).grunt并且gulp是任务运行者自动化所有可以自动化的东西(即编译CSS/Sass,优化图像,制作捆绑并缩小/转换它).gruntvs. gulp(就像mavenvs. gradle或配置与代码).Grunt基于配置单独的独立任务,每个任务打开/处理/关闭文件.Gulp需要的代码量较少,并且基于节点流,这使得它可以构建管道链(无需重新打开同一个文件)并使其更快.webpack(webpack-dev-server) - 对我来说,这是一个热门重新加载更改的任务运行器,可以让你忘记所有JS/CSS观察者.npm/ bower+ plugins可以替换任务运行器.他们的能力经常交叉,所以如果你需要使用gulp/ gruntover npm+插件,会有不同的含义.但是,跑步者的任务是复杂的任务肯定更好(例如,"每个建设创建捆绑,从ES6 transpile到ES5,在所有浏览器模拟器中运行它,使屏幕截图和部署通过FTP收存箱").browserify允许为浏览器打包节点模块.browserifyvs node的require实际上是AMD vs CommonJS.问题:
webpack&webpack-dev-server?官方文档说它是一个模块捆绑器,但对我来说它只是一个任务运行器.有什么不同?browserify?我们不能对node/ES6导入做同样的事情吗? gulp …我是新手使用npm和bower,在emberjs中构建我的第一个应用程序:).
我对rails有一些经验,所以我对列出依赖项的文件的想法很熟悉(例如bundler Gemfile)
问题:当我想添加一个包(并将依赖项检入git)时,它属于哪里 - 进入package.json还是进入bower.json?
从我收集的内容来看,
运行bower install将获取包并将其放在/vendor目录中,
运行npm install它将获取它并将其放入/node_modules目录.
这个SO答案说bower用于前端,npm用于后端.
Ember-app-kit似乎从第一眼开始就坚持这种区别......但是gruntfile中用于启用某些功能的指令给出了两个显式命令,所以我在这里完全糊涂了.
直觉我会猜到
npm install --save-dev package-name相当于将package-name添加到我的package.json中
bower install --save package-name可能与将包添加到我的bower.json并运行bower install相同?
如果是这种情况,我什么时候应该像这样明确地安装软件包而不将它们添加到管理依赖项的文件中(除了全局安装命令行工具)?
我是Angular.js的新手,并试图理解它与Backbone.js的不同之处......我们曾经使用Backbone来管理我们的包依赖关系和Require.js.使用Angular.js做同样的事情是否有意义?
我刚开始学习React,facebook通过提供以下现成项目帮助简化初始设置.
链接到Github上的Facebook帐户:https://github.com/facebook/create-react-app
如果我必须安装骨架项目,我必须输入npx create-react-app my-app命令行.
我想知道为什么Github中的facebook帐户npx create-react-app my-app而不是npm create-react-app my-app?
谁能告诉我,如何使用jQuery的有角?
class MyComponent {
constructor() {
// how to query the DOM element from here?
}
}
Run Code Online (Sandbox Code Playgroud)
我知道有一些变通方法可以预先操作DOM元素的类或id,但是我希望有一种更简洁的方法.
你怎么比较npm,bower和volo?
这三个都可用于为UI项目安装JavaScript依赖项.我理解npm更多节点特定.
那么,何时使用什么?
npm依然屹立遥远,但bower并volo似乎正好解决同样的问题,虽然我不是能画之间的线路npm和bower-volo.
能向我解释的人之间的区别NPM,Bower和Composer.
他们都是包裹经理 - 对吗?
但什么时候应该使用每一个?
此外,每个人都有一个随附的json文件,这是否存储了您需要的所有软件包,以便可以通过cmd行安装它们?你为什么需要这个档案?
我有一个项目取决于两者:
但是当我运行时bower install,它最终会安装jquery 2.0.2.这似乎破了.
我如何(a)正确解决约束或(b)明确强制安装最终版本(解决方法)?
因为我使用npm在package.json文件中查找依赖项并为您下载.同样,我在Java项目中看到了一个pom.xml文件.maven是否在此文件中查找并为我下载依赖项.我可以像package.json一样传递这个pom.xml文件,而不是给依赖项jar吗?这些工具是否相似,是否适用于不同的平台?
我是一个后端开发人员,对npm,bower,gulp,grunt和Yeoman有点困惑.每当我问某人他们的目的是什么时,答案往往归结为依赖经理 - 对所有人而言.当然,我们不需要四种不同的工具,它们都是一样的吗?
有人可以用尽可能少的句子来解释每个有益的东西- 如果可能的话,每个工具只使用一个,使用五岁的语言(具有开发技能)可以理解吗?
例如:
我过去曾经使用过maven,Jenkins,nexus和ant; 也许您可以将上述工具与这些工具进行比较?
也可以随意添加其他前端工具到列表中.
这是我到目前为止所发现的 - 不确定它是否正确,但是:
我接近了吗?:)
我应该澄清一点,我对前端工具没有经验,所以如果我问一些明显和愚蠢的东西,我会提前感到抱歉.
到目前为止,我一直在使用的字体结束和新公共管理服务器端的凉亭,虽然每个提到的工具有它的优势,我的意思是平的依赖管理的亭子(减少了从客户端负载)和嵌套依赖管理的NPM(使用版本控制有很多帮助,使用这么多工具(webpack,browserify等)变得非常麻烦.我可能一直在以错误的方式使用这些工具,并且可以使用其中任何一种选项(我不知道)并且只是表面上看,我只是把这个答案作为我的经验法则并且一直在做自从我读完之后就这样了.如果我能把这两个减少到一个就好了.
最近我对纱线感到好奇,并且围绕它的所有炒作似乎它已经做得很好,好像它会完全取代npm.正如我已经阅读了文档,我发现了--flat选项,这让我想知道是否可以将它作为更换器使用呢?如果是这样的话意味着我可以拥有平面或嵌套的依赖管理器(通过为服务器和前端提供多个json文件)?
如果有人能指出我正确的方向,我真的很感激!
我正在构建一个NodeJS应用程序并使用UnderscoreJS.是否更适用于Bower或NPM安装?实际上有什么区别吗?我在前端和后端使用它.什么是正确的方法?