我在哪里可以在WebStorm 8生成的node.js + Express + Jade + Stylus项目中添加NIB?

时间:2014-04-22 01:39:45

标签: javascript node.js express webstorm stylus

我正在尝试使用WebStorm 8开始使用node.js,Express,Jade,Styl和NIB。不幸的是,WebStorm不提供开箱即用的NIB支持,因此我正在搜索如何手动添加它。

它生成的app.js如下所示:

/**
 * Module dependencies.
 */

var express = require('express'); var routes = require('./routes'); var user = require('./routes/user'); var http = require('http'); var path = require('path');

var app = express();

// all environments app.set('port', process.env.PORT || 3000); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(express.favicon()); app.use(express.logger('dev')); app.use(express.json()); app.use(express.urlencoded()); app.use(express.methodOverride()); app.use(app.router); app.use(require('stylus').middleware(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'public')));

// development only if ('development' == app.get('env')) { app.use(express.errorHandler()); }

app.get('/', routes.index); app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port ' + app.get('port')); });

据我所知,谷歌搜索的东西就像这样的一段代码

function compile(str, path) {
  return stylus(str)
    .set('filename', path)
    .use(nib()) // <-here it goes!
}

但我找不到这样的地方。在这种情况下,如何将NIB附加到堆栈?

请原谅我的noob问题。请帮忙。我有基本的JavaScript技能(用于为客户端编写一些老式的手动方式),但在这种情况下有点困惑。是的,如果可能的话,我真的更喜欢IDE方式 - 我相信我可以从头开始创建项目,这样可以减少混乱,但我喜欢使用代码完成,调试和类似的东西来探索事物 - 这是我的最爱学习的方式,但在这种情况下我只需要一点点推动。感谢。

2 个答案:

答案 0 :(得分:1)

这是一个老问题,但要将任何手写笔lib添加到webstorm,您需要修改文件观察器

有关如何为nib执行此操作的示例,请参阅:https://devnet.jetbrains.com/message/5501662#5501662,但这也适用于webstorm 8/9中的jeet。

答案 1 :(得分:0)

您需要让您的手写笔中间件调用编译功能。尝试:

var express = require('express');
var routes = require('./routes');
var user = require('./routes/user');
var http = require('http');
var path = require('path');
var nib = require('nib');
var stylus = require('stylus');

var app = express();

// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.json());
app.use(express.urlencoded());
app.use(express.methodOverride());
app.use(app.router);

app.use(stylus.middleware(
  { src: __dirname + '/public'
  , compile: compile
  }
))

app.use(express.static(path.join(__dirname, 'public')));

// development only
if ('development' == app.get('env')) {
  app.use(express.errorHandler());
}

app.get('/', routes.index);
app.get('/users', user.list);

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

function compile(str, path) {
  return stylus(str)
    .set('filename', path)
    .use(nib()) // <-here it goes!
}