Tag: 构build

Sublime Text build:'node'不被识别为内部或外部命令

使用Windows XP,我已经通过包控制在SublimeText2上安装了CoffeeScript插件。 当我尝试构buildtest.coffee时,我得到: “节点”不被识别为内部或外部命令,可操作程序或batch file。 但是,在cmd控制台中input“node -v”会返回“v0.10.0”,因为我的PATHvariables包含“C:\ Program Files \ nodejs \”。 我发现有人用SublimeText在构build阶段卡住了,但没有一个匹配我的问题。 无论如何,这是我的CoffeeScript.sublime构build,因为它经常扮演一个中心angular色: { "cmd": ["cake", "sbuild"] ,"windows": { "cmd": ["cake.cmd", "sbuild"] } ,"selector": "source.coffee" ,"working_dir": "$project_path" ,"path": "C:\\Documents and Settings\\User\\Application Data\\npm" ,"variants": [ { "name": "Run", "cmd": ["coffee", "$file"] } ] } 更新 :直到那里感谢崇高的文本构build:找不到指定的文件 ,其答案是相同的我的其他来源, 这个博客和它的意见。 但是我仍然卡住了。

用gulp生成文件

我有一个名为setup.js文件,位于我的/src文件夹的各个子文件夹中。 我想要一个setup.js任务将所有setup.js文件复制到/dist文件夹并保留子文件夹结构。 这部分很简单。 棘手的部分是我还想在\dist文件夹中的每个setup.js文件旁边生成一个index.html文件。 除了需要使用相对于/dist文件夹的path引用setup.js脚本之外,index.html文件将完全相同。 我知道我可以使用一些像gulp模板dynamic呈现一个html文件,但我不知道如何将setup.jspathsetup.js给它。 我不知道如何为每个setup.js创build一个index.html 。 所以我要做的结果文件夹结构看起来像这样 /src template.html /blah1 setup.js /blah2 setup.js /dist /blah1 setup.js index.html /blah2 setup.js index.html 任何想法,我将如何做到这一点? 另外如果有人可以链接我一些详细的文档/示例/教程在Gulp可能解释如何去做这样的东西,我将不胜感激。 我还没有find很多很好的文章来解释Gulp幕后发生的事情,而且很难find超出微不足道的范例src | uglify | concat | dest src | uglify | concat | dest src | uglify | concat | dest用例。 谢谢!

如何使用Gulp在stream中replace?

我尝试从Grunt切换到Gulp,我有一个问题: 我从两个文件中读取两个stream var fileStream = gulp.src(file); var injectionStream = gulp.src(injection) .pipe(replace('#class-name#', argv.cname)); 如果我的控制台参数“–remove”缺席,我没有问题连接这些stream .pipe(concat('animation.styl')) .pipe(gulp.dest('./dist')) 但是,当“–remove”为真时,我想删除注入,换句话说,从fileStream中减去injectStream。 我试过了: var es = require('event-stream'); es.replace() var replace = require('gulp-replace'); 它适用于string,但是我不能用从文件读取的stream成功。 有人可以给我一个小提示吗? 也许这是一个不正确的工具生成任务,我应该留在Grunt和/或其他工具,如哟等? 感谢您的时间!

如何自动停止在后台运行的npm脚本

我使用npm脚本,我有一些应该并行运行。 我有这样的东西: … scripts: { "a": "taskA &", "preb": "npm run a", "b": "taskB" } … 这可以! 但是我想在任务B完成后自动终止运行taskA。 我怎样才能做到这一点? 谢谢!

在Gulp Browserify中的标准错误日志

有了这个任务: gulp.task("es6", function () { return browserify({entries: 'src/main/es6/main.js', extensions: ['.js'], debug: true}) .transform(babelify) .bundle() .pipe(source('superpos.js')) .pipe(streamify(uglify())) .pipe(gulp.dest('src/main/webapp')); }); 我得到这种错误日志: 这很清楚,很漂亮,我喜欢。 但为了保持我的手表运行,我需要处理的错误,而不是让它通过,像 … .transform(babelify) .bundle() .on('error', function(error){ // pretty error print this.emit('end'); }) … 我怎样才能在这里重现相同的错误日志? 我宁愿避免通过结合粉笔,拼写和阅读错误文件来痛苦地复制它,但是要以某种方式使用相同的function。

在Electron应用程序中运行python脚本

我有一个Electron项目,它使用NodeJS的child_process模块​​执行一些python脚本。 我的Python脚本在我的项目的根文件夹。 以下是我如何调用python脚本: let py = spawn('python',['ResolvePosition.py', obsFilePath, navFilePath]) py.stdout.on('data', data => console.log('data : ', data.toString())) py.on('close', ()=>{ // Python ends, do stuff }) 这工作正常,如果我用npm start我的电子应用npm start当我使用npm模块electron-builder为Windows构build一个可执行文件并从dist/win-unpacked/my-app.exe运行可执行文件,这将无法正常工作似乎我的脚本不能用python ./my-script-py 。 那么,我怎样才能使这个代码适用于build成的项目?

Grunt:自定义任务开发的方法

我需要实现一个自定义的Grunt任务,我完全失去了开发工作stream程。 我如何开发自定义任务,并模拟在开发过程中使用npm加载它? 有没有其他方式分发自定义任务,而不是使用npm ? 我的意思是,我可以分发一个定义整个定制Grunt任务的JavaScript文件,并直接将其导入到Gruntfile.js ? 由于整个任务将处于一个非常早期的发展阶段,所以用npm来发布它的努力可能不是一个好主意。 提前致谢。

在本地安装节点Grunt

我正在修改我的构build系统,我已经阅读了node.js和grunt是一个很好的方法。 我从来没有用过,而且我有点麻烦。 问题是我想build立一个可以包含在我的项目的版本控制中的可移植构build环境(也许这是不可能的)。 获取node.js和npm工作已经没有问题了。 但是,我所看到的安装grunt的每条指令都表示在全局安装npm时使用-g标志。 因为我想要一个完全便携的环境,所以我试图放弃这个环境,但是我不能工作。 我是否错过了一些东西,或者是我试图做不到的事情?

如何使用NodeJS来组织构build,服务器,客户端和共享的JavaScript代码

在服务器上使用NodeJS的一个很大的好处是可以在服务器和客户端之间共享代码(例如inputvalidation)。 现在我实际上正在使用NodeJS开发一个难题,我发现确定每个代码体执行的责任和上下文。 下面我将列举一些我曾经遇到过的困难,希望能够对我可能会忽视的公约或指导方面有所启发,从而有助于提升这些问题。 构build时代码 为遵循基本文档而使用Gulp,Grunt或者vanilla NPM的项目构build时间代码通常非常容易。 大多数较小的项目都倾向于将所有的代码保存在一个单独的文件中,而文件往往被命名为gulpfile.js这样的传统名称,但是更大的项目我已经看到这些脚本开始被分割出来。 我已经看到一些情况下,吞噬文件被拆分成多个文件,并放置在一个单独的目录下。 更糟的是,我发现gulpfile.js文件甚至没有被命名为这样的情况,导致新开发人员四处寻找gulp文件的位置,一旦findgulp命令,总是必须运行具体的– -gulpfile选项。 运行时服务器端代码 基本节点应用程序的入口点似乎只需要在运行节点命令时指定特定的JavaScript文件(例如, node script.js )。 对于Web服务器应用程序(例如使用Express的应用程序),我注意到按照惯例,入口点文件通常称为server.js,通常可以在应用程序的根目录中find。 但是,在其他一些情况下,比如在开发环境中运行Web服务器时,我看到吞噬任务承担了启动Node的责任。 在这些情况下,似乎有多种方法来包含入口点,但我发现的一个例子是启动webpack编译器,然后是入口点脚本的require语句。 在这种设置中,弄清楚如何结合正常的指导来完成典型的节点debugging命令是非常重要的。 除了应用程序的入口之外,NodeJS / Express应用程序的目录结构似乎没有任何一般指导,它们将服务器端特定的代码保留在位置上,以帮助查找它并使其与构build时间和客户端代码。 如果服务器端代码既用于提供静态内容,服务器端生成的视图(如使用MVC),也用于向客户端提供API,则服务器端故事变得更加复杂侧。 我的偏好是将API从应用程序项目中分离出来,但是我从其他人那里得到的感觉是,如果我认为这是一个合理的分离关注,那么就会有一种过度复杂的感觉。 运行时客户端代码 由于客户端代码可能经常有基于请求的第一页的各种入口点,这可能是棘手的。 但是由于URL的普遍透明性,以及它们在典型情况下如何映射资源,以及debugging工具在现代浏览器中的function如何强大,所以在脚本的后续工作中不会太麻烦。 对于客户端代码来说,困难在于典型的构build过程,而这些过程通常最终会复制文件并将其放置在不同名称的结构中。 一个例子是一个项目有一个名为src或js的文件夹,这个文件夹将客户端和服务器端代码混合在一起,除了只有一部分文件被包含在一个构build任务中,这个任务转换并经常连接文件和将它们放在分发文件夹中。 这些分发文件夹的常见名称是dist , public , www和wwwroot 。 通常情况下,如果不是这些目录总是在项目的根目录下,那么至less可以在不必询问构build脚本的情况下轻松定位。 我的希望是,对于如何把所有这些都集中在一个统一的指导下,或许是一个权威的来源,主要是指导像我这样的人可能想要从右脚开始。 作为一个副作用,即使是一个松散的标准,也可以参考某种标准,也可以减less一个团队在开始时要发明和讨论的样板量。 在上面列出的每个上下文中,显然会有一些技术特定的约定,例如在客户端用于AngularJS,Meteor或ReactJS的约定。 我正在寻找的约定更具体到分离端到端JavaScript应用程序中的主要高级上下文,其中语言和平台不再成为区分每种语言和平台的明显方式。

编译多个打字稿文件

我的nodejs Typescript服务器的复杂性已经增长,现在依赖于另一个.ts文件中定义的几个类。 这造成了一个奇怪的编译问题: tsc server.ts编译一切正常。 但是, node server.js在第一行崩溃,从其他.ts文件实例化一个类 tsc –out server.js server.ts导致错误消息:“模块发出与发出的脚本冲突” tsc –out serv.js server.ts似乎工作,但实际上编译除了server.ts的一切。 来自其他文件的代码在那里, node serv.js只是返回没有任何输出 我不是唯一一个这个错误, https: //typescript.codeplex.com/workitem/294不幸的是codeplex的解决scheme不适合我。 我如何正确使用tsc ?