Tag: 构build

我可以链接npmconfiguration条目吗?

使用npm config部分很简单,很酷,但是我遇到了一个限制:一个configuration项不能被扩展,所以不能链接它们,甚至不能访问非configuration值saconfiguration文件。 样品: { "name": "myproj", "version": "0.1.2", "//": "Here, '$npm_package_version' is not expanded", "config": { "target": "dist/myproj-$npm_package_version.js" }, "scripts": { "echo": "echo $npm_package_config_target", } } 这给了: dist/myproj-$npm_package_version.js 代替: dist/myproj-0.1.2.js 有什么我可以做的吗? 像这样的链接值是一个有用的function – 我很惊讶nom不这样做。 有没有理由不? 参考文献: Node.js:如何为prod和staging设置不同的variables 如何使用npm作为构build工具

我可以显示npm运行的扩展命令吗?

我试图使用npm作为构build工具,由Keith Cirkel的文章如何使用npm作为构build工具的动机。 这种工作,但… $ npm run build > browserify $npm_package_config_src -d -p [minifyify –map myproj-$npm_package_version.map.json –output dist/myproj-$npm_package_version.map.json] > dist/myproj-$npm_package_version.min.js 我来自Make世界,我真的很看重看到实际的命令进一步,这意味着$npm_package_config_src和$npm_package_version展开,如下所示: $ npm run build > browserify src/myfile.js -d -p [minifyify –map myproj-0.4.2.map.json –output dist/myproj-0.4.2.map.json] > dist/myproj-0.4.2.min.js 有没有办法做到这一点? 推理:当看到实际的命令时,它使debugging构build更清晰。 现在我觉得我在黑暗中(尽pipe可能会发生正确的事情)。 另外,由于$npm_package_config_blahblah是一个“满口”(就像Keith所说的那样),它本身就是一个冗长的问题。

使用Bower和Gulp命名约定和文件放置

我刚刚开始与Bower和Gulp合作。 我有一个bower.json列出我的依赖,一个gulpfile.js与字体,CSS,JS等任务和一个package.json列表吞没依赖,等等。 我只有那些在版本控制下的文件,并且作为一个testing在其他地方检出了版本库,并设法安装了吞吐和依赖关系,并且用gulp构build了所有的东西。 然后我有目录bower_components , node_modules和build ,这是由node_modules创build的。 什么是现在正常的地方把我自己的代码? 我应该简单地在项目的根目录中创build另一个目录, src或app等,并让gulp缩小它,并将其放置在build目录中? 是否有任何我应该知道的命名约定? 所以,我目前的目录结构是: 根 bower_components bootstrap,bootswatch,jquery,… node_modules 吞,吞,*,… build立 资产 CSS,字体,IMG,JS,… bower.json gulpfile.json 的package.json

Node.js + Mongoose中的基本build模

我坚持开发一个node.js应用程序。 我试图build立一个音阶,它有一个名字和一些相关的音符: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var scaleSchema = new Schema({ name: String, displayName: String, notes: [{type: String}] }); module.exports = mongoose.model('Scale', scaleSchema); 但是,我不知道如何“种子”,甚至不能访问这个模型。 我想用一些只能装入一次的秤来填充它。 我知道我可以要求这个模型,并使用new来创build新的条目,但是有没有我必须把它放在节点应用程序的特定部分? 是否有一个最佳的使用方法? 我做错了吗? 我在这里相当困惑,但感觉好像我几乎掌握了它的工作方式。 有人能指出我正确的方向吗?

Solaris 11:Node.JS:无法自动检测OpenSSL支持

我如何在Solaris 11上解决这个错误? "Could not autodetect OpenSSL support. Make sure OpenSSL development packages are installed. Use configure –without-ssl to disable this message." 这很奇怪,因为我知道我有openssl 1.0.0e 。 另外我知道Node正在查看/usr/include ,并且存在/usr/include/openssl/ssl.h和/usr/include/openssl/crypto.h文件。 Ubuntu等效

JavaScript在Sublime Text 2中使用Node.js错误构build系统

我使用Node.js在Sublime Text 2中构build系统来构buildJavaScript代码。 我知道如何在Sublime中设置基本的构build系统,但是这真的给了我一些问题。 JavaScript示例代码: var end = 10; for (var i = 0; i < end; i++) { console.log("hello world!"); }; 第一次尝试: { "cmd": ["node", "$file"] } 在控制台中返回: [Finished in 0.1s] 第二次尝试: { "cmd": ["node", "$file", "$file_base_name"], "working_dir": "${project_path:${folder}}", "selector": "#.js" } 返回相同的东西。 任何帮助将不胜感激(我花了超过2个小时search谷歌)。 编辑:固定For :相同的结果。

有没有一种通用的方式来消耗我的依赖的咕build生成过程?

比方说,我有一个项目,我想使用Lo-Dash和jQuery,但是我不需要所有的function。 当然,这两个项目都有构build工具,所以我可以精确编译我需要的版本,以节省宝贵的带宽和parsing时间,但是我觉得在本地安装它们并生成我的版本,然后将它们检入到我的系统中是非常不舒服和难看的库。 更重要的是,我想将自己的咕噜声过程整合到我自己的行列中,并在旅途中创build自定义的构build,这将更加可维护。 Lo-Dash团队通过一个专门的cli来提供这个function,甚至用一个咕task的任务来包装它。 这确实是非常好的,但我想要一个通用的解决scheme,因为它不应该有每个软件包作者复制这个问题。 我试图用grunt-shell hackery来做到这一点,但据我所知,devDependencies不可能超过一个级别,这使得执行所需的grunt任务变得更加难以实现。 那么你对此有什么看法呢,还是应该把这个转到0.5.0讨论的咕噜声?

phantomjs 1.9.19的来源在哪里?

我试图为armv8-a处理器构build幻影版本1.9.19 。 但是,当我检出项目的github页面时 ,我发现最新的1.9.x版本是1.9.8 。 我在哪里可以find1.9.19的来源? 背景 版本1.9.19是facebooks osquery所必需的。 由于它不是预先构build的arm我不得不手动构build它和它的依赖关系。 目前它与info phantomjs@1.9.19 Failed to exec install script中断info phantomjs@1.9.19 Failed to exec install script 。

如何在Node.js的模块中使用Object.create进行inheritance

我有一个包含一般车辆信息的模块车辆。 我有另外一个模块Car,它为Vehicle对象增加了更多的function。 // Pseudo code only. The final functions do not have to resemble this var vehicle = require('vehicle') vehicle.terrain = 'Land' var car = vehicle.createCar() // car and anotherCar will have unique Car-related values, // but will use the same Vehicle info var anotherCar = vehicle.createCar() 我正在寻找使用Object.create Car模块,但不知道Object.create调用应该去的地方。 我应该在Car模块中有一个构造函数,它需要一个Vehicle对象的实例,并以Vehicle实例为原型执行Object.create? 或者,Object.create是否应该在Vehicle对象的函数中发生,比如createCar? 我的问题是,汽车应该关心它是从车辆派生出来的,汽车不应该知道汽车需要的。 或者即使Object.create是正确的方法。 请,任何示例和最佳做法将不胜感激。 更新: […]

在单个JavaScript代码库中使用Browserify的多种风格/目标

我正在开发多个浏览器扩展插件,这些扩展插件通常至less需要在Chrome和Firefox中使用(有时也在Safari中)。 最大的问题是保持干爽,另一方面保持源头清洁。 从概念上讲,这个项目通常有以下几个部分 Chrome的后台脚本 Firefox的后台脚本 共同的后台代码 Chrome的内容脚本 内容脚本为Firefox 常见的内容脚本代码 其他脚本(例如:选项页)。 为了减less代码重复,我有一个浏览器的内容脚本,并在构build过程中对其进行预处理(删除其他浏览器特定的部分)。 不幸的是,这使内容脚本真的很长,很难看(很难擦掉)。 我想基本上使用Browserify在我的项目中的整个JS代码。 仍然要这样做,我需要一个解决scheme来处理这种stream量: 浏览器特定的入口脚本 – >跨浏览器代码 – >浏览器特定的低级代码。 我会想象这种层次结构: – Entry scripts – Browser A – Browser B – … – Common code – Low-level code – Browser A – Browser B – … 因此,例如,在构build过程中,我希望Browserify为浏览器A创build一个入口脚本,然后将其与通用代码和浏览器A的低级代码捆绑在一起。 这是在通用代码中没有这种切换的情况下完成的: if(isBrowserA()) { var lowLevelModule = require("../lowLevel/browserA/module"); } else […]