Articles of 早午餐

使用brunch和node.js模块

我想为我的客户早午餐版本和我的节点服务器使用相同的骨干模型,节点的模块系统与默认使用的commonjs模块几乎相同,但是我需要一些思考来设置不同的东西。 /server.js Backbone = require('Backbone'); _ = require('underscore'); var MyAppModel = require('./app/models/MyAppModel'); var app = new MyAppModel(); /app/models/MyAppModel.js var PeopleCollection = require('../collections/PeopleCollection'); // NODE var PeopleCollection = require('collections/PeopleCollection'); // BRUNCH var MyAppModel = Backbone.Model.extend({ initialize: function() { this.set('people', new PeopleCollection()); } }); module.exports = MyAppModel; /app/collections/PeopleCollection.js var PersonModel = require('../models/PersonModel'); // NODE var PersonModel = […]

自定义“主题”编译可能使用早午餐?

我想弄清楚如何使用早午餐完成以下操作。 这是我们的应用程序的当前目录结构: –app –base (theme folder, considered the master for all themes) –sass –js –theme2 –sass –js –theme3 –sass –js …so on 基础文件夹充当所有其他主题的主人。 但是,如果另一个主题在sass目录或js目录中具有与基本文件夹中的文件相匹配的文件,则它将覆盖基本文件夹中的该文件(这也适用于导入)。 到目前为止,我已经创build了这个工作方式,但它绕开了早午餐pipe道,我写出了文件(目前不支持文件连接),我更喜欢使用适当的早午餐pipe道来做到这一点。 会发生什么事是每个sass或js文件遇到的基本文件夹被用来生成另一个主题的新文件。 例如说,基本主题有一个名为main.scss的文件。 传递给编译的path是base/scss/main.scss 。 现在我想为其他主题使用这个相同的文件,所以我得到所有的主题文件夹,并dynamic地使用这个基本main.scss文件为每个其他主题。 但是,如果它们存在于其他主题目录中,我也会更改内部导入来replace文件导入。 它不是相同的文件正在涌入多个地点。 问题是我想dynamic生成brunch的新CSS文件以渲染到与传入的原始path(因此此path的joinTo config选项)不相关的不同文件夹。 通过调用callback,它会自动使用传递给编译方法的原始path参数。

用手写笔导入引导程序

我开始用boilderplate做早午餐。 现在我想在这里包括bootstrap-styl 。 我用npm安装了bootstrap,工作正常。 现在它位于node_modules文件夹中。 当我尝试在* .styl文件中导入@import bootstrap时,问题就出现了。 failed to locate @import file bootstrap.styl 根据文档,这是我需要得到这个工作: var bootstrap = require('bootstrap-styl'), stylus = require('stylus'); function compile(str) { return stylus(str) .use(bootstrap()); } 那么我到底需要写些什么呢? 在我的任何脚本? 我完全不知道这个洞的工作原理。 试图把这个代码放在空脚本文件中,仍然没有结果。

Docker + Nodejs + Brunch + ReactJS图像

我试图设置我的开发环境,只是在笔记本电脑上安装Docker。 我要创build的第一个容器是Node.js + Brunch.io + ReactJS。 在我的Ubuntu 16.04主机上,我创build了一个目录 mkdir /home/username/Development/projectname/ 在项目名称文件夹里面,我已经通过运行克隆了早午餐/反应骨架回购 git clone https://github.com/brunch/with-react.git www 在www目录里面创build了一个Dockerfile FROM node:6.3.1 RUN apt-get update && apt-get install –yes npm WORKDIR /opt COPY package.json /opt RUN npm install COPY . /opt RUN npm install -g brunch/brunch RUN brunch build EXPOSE 3333 CMD ["npm", "start"] build立图像启动 docker build . -t […]

早午餐需要node.js模块

为了方便编译JS,我设置了Brunch,但也希望能够使用带有require的node.js模块。 经过一段时间,我很难过。 我想能够做到这样的事情: var myJSfile1 = require('foo'); var myJSfile2 = require('bar'); var nodeJSdependency = require('node-fubar'); 其中app /包含foo.js和bar.js ,而在package.js中,我有一个依赖node-fubar 。 当然,当我运行brunch watch –server时,会发生什么情况 – 服务器表示编译正常,但是当我在浏览器中打开它时,出现控制台错误 Error: Cannot find module "node-fubar" from "app" 如果我尝试以下操作: var nodeJSdependency = require('../node_modules/node-fubar'); 错误更改为: Error: Cannot find module "node_modules/node-fubar" from "app" 我做错了什么,或者是我试图做不到的事情? 如果不是,你会怎么build议呢? 有浏览器和节点依赖都是必不可less的,但早午餐可能不(我只是喜欢它)。 提前致谢!

全局安装早午餐时出现错误信息

每次我尝试通过在命令行中input“npm install -g brunch”来安装早午餐时,我收到以下错误消息: > fsevents@0.3.0 install /usr/local/share/npm/lib/node_modules/brunch/node_modules/chokidar/node_modules/fsevents > node-gyp rebuild CXX(target) Release/obj.target/fse/fsevents.o In file included from ../fsevents.cc:86: ../src/constants.cc:10:66: warning: template argument uses unnamed type [-Wunnamed-type-template-args] object->Set(NanNew<v8::String>("kFSEventStreamEventFlagNone"), NanNew<v8::Integer>(kFSEventStreamEvent… ^~~~~~ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/FSEvents.h:290:1: note: unnamed type used in template argument was declared here enum { ^ 1 warning generated. SOLINK_MODULE(target) Release/fse.node SOLINK_MODULE(target) Release/fse.node: Finished /usr/local/share/npm/bin/brunch -> /usr/local/share/npm/lib/node_modules/brunch/bin/brunch brunch@1.7.17 […]

configurationBrunch从一个模板文件输出多个HTML / JS文件的正确方法是什么?

这是我的情况 – 我有多个广告单元可供创build,每个广告单元的大小和animation都不相同。 我试图运行一个单一的早午餐手表服务器来处理以下内容: 执行一些预处理 (即:使用TexturePacker发布CSS / LESS和PNG地图集)。 将app / assets / index.html的内容复制到临时文件/缓冲区(因为它使用了几个{{handle-bar-like}}占位符标签来replace每个文件的configuration。 replace宽度,高度,边框宽度,边框高度,标题和文件名等占位符标记。 使用临时文件/缓冲区(将这个JS和CSS粘贴到来自模板index.html文件的相应注释行中)内嵌到该广告的JS&CSS(位于app/en_???x???_etc/ ) 。 执行一些后处理 (即:stringreplace/清理等) 我的困境是,我不确定我应该在哪里写configuration和文件和文件夹查找代码。 我可以直接在brunch-config.js放置一些代码,然后再定义module.exports对象(或者在configuration文件被定义之前把它放在一个单独的文件中,configuration文件requires(…) )? 那么定义前后程序调用呢? 我知道afterBrunch和afterBrunch存在,但我不确定是否会在每个index.html文件复制之前或之后被调用,或者在所有事情之前和复制之前(如果这是有道理的)。 而为了使事情更加复杂,每个前后处理调用可能需要略微不同,以提供每个JS,CSS,atlas.png输出的文件名。 我已经完成了与Haxe(在这种情况下充当命令行伴侣)类似的设置,但是如果我可以缩小此工作stream程以仅使用NodeJS / NPM模块,它将使我的客户的生活与他们分享项目时更容易。 谢谢!

有没有办法将自定义命令行parameter passing给Brunch?

我试图传递自定义的命令行参数早午餐,如下所示: brunch build -p myCustomArg 但不pipe我input什么,都会抛出一个错误: path\graceful-fs\polyfill.js:18 chdir.call(process, d) Error: ENOENT: no such file or directory, uv_chdir 至less我在猜测它试图“传递”我所传递的自定义参数,但是却无法识别它们,所以它会中止。 有没有什么特别的论点(比如像nodemon有一个怎样的)来区分早午餐的具体参数?

Brunch将NODE_ENV或环境variables暴露给javascript

我正在写一个npm脚本来执行早午餐构build。 我想传递一个环境variables,以便应用程序知道默认使用哪个URL(这组URL可以根据来自UI的用户请求而改变)。 这是我的npm脚本安装到目前为止(我在Windows上): "scripts": { "build:localhost": "SET NODE_ENV=localhost && brunch build", "build:develop": "SET NODE_ENV=develop && brunch build", "build:production": "SET NODE_ENV=production && brunch build" } 如果我npm run build:localhost和console.log(process.env.NODE_ENV); 在我的早午餐config.js,我得到localhost ,我所期望的。 但是相同的console.log(process.env.NODE_ENV); 在我正在编译的JavaScript文件之一返回development 。 这不是我所期望的 – 我希望它是localhost 。 如何将我设置的NODE_ENVvariables传递给我的JavaScript代码? 更一般地说,我怎么能提供一个variables,以我的早午餐的JavaScript代码? brunch命令的–env标志似乎只是在brunchconfiguration的overrides块中使用了哪个设置。 UPDATE 我可以用jsenv-brunch来做到这一点,感谢@migore的这个build议 ,但是我想知道NODE_ENV是否应该像我描述的那样默认是这样的,为什么呢?

Node.js – “未捕获的错误:找不到模块”redis“”

我试图在Node.js中使用Redis作为数据库来构build一个简单的“Twitter”风格的短消息应用程序 (虽然我听说MongoDB可能更容易)… 我发现了一些链接指向我的方向https://github.com/mranney/node_redis,所以我使用Brunch设置了一个新的Node.js项目,并按照指示在我的项目目录中运行以下命令: npm install redis hiredis 然后,我将auth.js例子中的以下内容添加到了vendor / script.js中 var redis = require("redis"), client = redis.createClient(); 但是,当我运行早午餐W – S在控制台中出现以下错误: Uncaught Error: Cannot find module "redis" 我假设这是与模块没有被列入我的项目,但我不知道从哪里开始。 我补充说 "redis": "latest" 到我的package.json文件,但似乎没有做任何事情。 我也尝试通过运行全局安装redis模块 sudo npm install -g redis 但是还是没有运气。 我还应该补充说我在OS X上安装了redis-server,我可以在terminal上运行它: $ redis-server [2221] 17 Aug 10:48:42 # Warning: no config file specified, using the default […]