我正在尝试总结我对最流行的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相同?
如果是这种情况,我什么时候应该像这样明确地安装软件包而不将它们添加到管理依赖项的文件中(除了全局安装命令行工具)?
为什么我Waiting...Fatal error: watch ENOSPC在运行监视任务时得到了什么?我该如何解决这个问题?
我首先删除了旧版本的grunt,然后我安装了新的grunt版本,然后我收到了这个错误:
D:\ www\grunt-test\grunt grunt-cli:grunt命令行界面.(v0.1.4)
致命错误:无法找到当地的咕噜声.
如果您看到此消息,则表示未找到Gruntfile或者您的项目未在本地安装grunt.有关安装和配置grunt的更多信息,请参阅"入门指南":http://gruntjs.com/getting-started
这是因为我的系统路径中没有对grunt的引用吗?或者是其他东西?我试过几次重新安装它.
我正在尝试将nodeJs安装到我的Ubuntu 14.04中以便使用GruntJs.
我已经阅读了Ubuntu不同的做法(问题?),所以这就是我为安装它而做的事情:
sudo apt-get install npm
sudo npm install -g grunt-cli
Run Code Online (Sandbox Code Playgroud)
在那之后打字咕噜我有错误:
/usr/bin/env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)
所以,我试过了:
curl -sL https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install -y nodejs
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
再试一次,仍然得到错误,我试过:
sudo add-apt-repository https://launchpad.net/~chris-lea/+archive/node.js/
sudo apt-get install -y nodejs
Run Code Online (Sandbox Code Playgroud)
我有这样的信息:
nodejs is already the newest version.
0 to upgrade, 0 to newly install, 0 to remove and 3 not to upgrade.
Run Code Online (Sandbox Code Playgroud)
我确实尝试过清理,以防万一:
sudo apt-get autoremove
Run Code Online (Sandbox Code Playgroud)
但是没有,错误仍然存在:当我输入咕噜声时,我仍然会得到 /usr/bin/env: node: No such …
我正在尝试使用Grunt作为我的webapp的构建工具.
我想要至少有两个设置:
I.开发设置 - 从单独的文件加载脚本,没有连接,
所以我的index.html看起来像:
<!DOCTYPE html>
<html>
<head>
<script src="js/module1.js" />
<script src="js/module2.js" />
<script src="js/module3.js" />
...
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
II.生产设置 - 在一个文件中加载我的脚本缩小和连接,
与index.html相关:
<!DOCTYPE html>
<html>
<head>
<script src="js/MyApp-all.min.js" />
</head>
<body></body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在的问题是,如何才能让咕噜使这些的index.html的取决于配置,当我运行grunt dev或grunt prod?
或者也许我正在挖掘错误的方向并且总是生成更容易MyApp-all.min.js但是将所有脚本(连接)或从异步文件中异步加载这些脚本的加载器脚本放入其中?
伙计们,你是怎么做到的?
我正在寻找一个jquery插件的git repo.我想在我自己的项目中进行一些更改,但是当我打开回购时,它有一个我以前从未见过的结构.我不确定使用/复制到我自己的项目中的文件.
有一个"dist"和一个"src"文件夹.这些服务的目的是什么?这是针对gruntjs或jquery插件的特定内容吗?
git repo我很好奇:https://github.com/ducksboard/gridster.js
我使用md5 grunt任务生成MD5文件名.现在我想在任务的回调中使用新文件名重命名HTML文件中的源.我想知道最简单的方法是什么.
我在windows7上安装grunt,node,npm,bower和grunt-cli.
说明说我应该使用-g标志为全局运行install命令.
如何在安装时检查是否使用了-g标志.卸载它们并重新安装需要花费大量时间.
gruntjs ×10
javascript ×5
node.js ×5
npm ×3
bower ×2
build ×1
gulp ×1
jquery ×1
node-modules ×1
npm-install ×1
replace ×1
ubuntu ×1
webpack ×1