[英]Simplest possible node.js + nunjucks example
可能永远不会使用 node.js 或 Nunjucks 进行任何实际开发,但现在出于某种原因需要:
Nunjucks
node.js
下运行预编译模板我已经做好了:
node.js
和npm
(例如有node
和npm
命令)mkdir njtest && cd njtest
npm install nunjucks
(获得了node_modules/nunjucks
目录)mkdir templates
在模板中,我创建了两个文件index.html
和layout.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
?
请不要搜索这个问题的任何高级内容。 对于了解节点和 javascript 的人来说,这可能是一个愚蠢的简单问题。
我所知道的,将需要,创建一个文件让说app.js
并需要与node
一起运行它 - 但应该包含什么?
require 'nunjucks';
可能是这样的: var res = nunjucks.render('templates.js');
还有什么? (最简单的(一次性)解决方案)。 注意:要在服务器端而不是在浏览器中使用 Nunjucks。
首先初始化Node应用程序,如下所示:
cd njtest
npm init
您可以按“Enter”接受大多数问题的默认值,如果您在创建app.js 后执行此操作,那么它将自动检测到并将其用作简单服务器的入口点。
安装Express:
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然后弹出你的页面!
希望有帮助......
我为 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
来构建项目。
不要考虑构建配置。 只需编写您的项目!
我希望我的建造者能解决你的问题:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.