17

可能永远不会使用 node.js 或 Nunjucks 进行任何真正的开发,但现在出于某种原因需要:

  • 将一些简单的模板预编译为 javascriptNunjucks
  • 运行下的预编译模板node.js

我已经做好了:

  • 安装node.jsnpm(例如拥有nodenpm命令)
  • mkdir njtest && cd njtest
  • npm install nunjucks用(得到一个node_modules/nunjucks目录)安装了 nunjucks
  • mkdir templates
  • 在模板中,我创建了两个文件index.htmllayout.html具有以下jinja2/nunjucks内容

  • layout.html

<!doctype html>
<head>
        <title>simple example</title>
</head>
<body>
        <h1>Simple example</h1>
        {% block body %}{% endblock %}
</body>
  • index.html
{% extends "layout.html" %}

{% block body %}
hello world
{% endblock %}
  • 我预先编译了模板
./node_modules/nunjucks/bin/precompile templates >templates.js

templates.js我有预编译的代码。

接下来我应该to do得到一个正在运行的网络服务器什么将使用预编译template.js

请不要搜索这个问题的任何高级内容。对于了解 node 和 javascript 的人来说,这可能是一个愚蠢的简单问题。

我知道,将需要,创建一个文件让我们说app.js并需要运行它node- 但应该包含什么?

require 'nunjucks';

可能是这样的:var res = nunjucks.render('templates.js');还有什么?(最简单的(一次性)解决方案)。注意:要在服务器端使用 Nunjucks,而不是在浏览器中。

4

2 回答 2

22

首先初始化您的 Node 应用程序,如下所示:

cd njtest
npm init

您可以点击“Enter”以接受大多数问题的默认设置,如果您在创建 app.js执行此操作,那么它将自动检测到这一点并将其用作您的简单服务器的入口点。

安装快递:

npm install express --save

然后创建app.js如下:

var express     = require( 'express' ),
    app         = express(),
    nunjucks    = require( 'nunjucks' ) ;

// Define port to run server on
var port = process.env.PORT || 9000 ;

// Configure Nunjucks
var _templates = process.env.NODE_PATH ? process.env.NODE_PATH + '/templates' : 'templates' ;
nunjucks.configure( _templates, {
    autoescape: true,
    cache: false,
    express: app
} ) ;
// Set Nunjucks as rendering engine for pages with .html suffix
app.engine( 'html', nunjucks.render ) ;
app.set( 'view engine', 'html' ) ;

// Respond to all GET requests by rendering relevant page using Nunjucks
app.get( '/:page', function( req, res ) {
    res.render( req.params.page ) ;
} ) ;

// Start server
app.listen( port ) ;
console.log( 'Listening on port %s...', port ) ;

现在启动浏览器,访问http://localhost:9000并弹出您的页面!

希望有帮助...

于 2015-10-22T08:40:30.917 回答
0

我为 Nunjucks + SCSS + TypeScript 创建了简单的构建器

文档:https ://github.com/Artik-Man/SamuraiJS

NPM:https ://www.npmjs.com/package/samuraijs

npm i samuraijs

创建samurai.js文件:

import {Samurai} from "samuraijs";

new Samurai({
    paths: {
        source: 'src',
        destination: 'dist'
    }
});

将以下行添加到您的 package.json 中:

{
  "scripts": {
    "serve": "node samurai.js --serve",
    "build": "node samurai.js --build"
  },
  "type": "module"
}

将 *.njk 文件放在src/目录中,运行

npm run serve

并打开localhost:3000

或者npm run build构建项目。

不要考虑构建配置。只需编码您的项目!

我希望我的建筑商能解决你的问题:)

于 2021-10-03T16:12:01.277 回答