加载htmlWebpackPlugin的ejs问题(未定义)

时间:2017-06-22 22:23:50

标签: node.js ejs

我有我认为是一个ejs问题,克隆了一个github回购并且在我遇到问题之前没有真正使用过ejs。奇怪的是,我可以让repo在本地主机上工作,但在IDE中我得到以下内容:

ReferenceError: /home/cabox/workspace/example/base.html:10
    8|   <body>
    9|     <div id="page"></div>
 >> 10|     <script src="<%= htmlWebpackPlugin.options.libBaseUrl 
%>/llsRecorder-v1.0.0.js"></script>
    11|   </body>
    12| </html>
    13| 

htmlWebpackPlugin is not defined
    at eval (eval at <anonymous>     (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:524:12), <anonymous>:11:26)    
at returnedFn (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:555:17)
    at tryHandleCache     (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:203:34)
    at View.exports.renderFile [as engine]     (/home/cabox/workspace/node_modules/ejs/lib/ejs.js:412:10)
    at View.render     (/home/cabox/workspace/node_modules/express/lib/view.js:128:8)
    at tryRender     (/home/cabox/workspace/node_modules/express/lib/application.js:640:10)
    at EventEmitter.render     (/home/cabox/workspace/node_modules/express/lib/application.js:592:3)
    at ServerResponse.render     (/home/cabox/workspace/node_modules/express/lib/response.js:971:7)
    at /home/cabox/workspace/server.js:14:9
    at Layer.handle [as handle_request]     (/home/cabox/workspace/node_modules/express/lib/router/layer.js:95:5)

我已经使用npm安装了最新版本的ejs并设置了我的视图(适用于本地主机):

app.use(express.static(__dirname + '/public'));
app.set('views', __dirname + '/example');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');

app.get('/', function(req, res, next) {
res.render("base");
});

知道IDE版本的本地主机之间可能出现什么问题?显而易见的事情,如公共&#39;或许更改为IDE文件夹名称,或者同样小的东西。

谢谢!

汤姆

1 个答案:

答案 0 :(得分:1)

您必须以对象的形式将变量传递给渲染。您传递的变量也必须通过require或在那里定义来存在于同一文件中。(我不知道您是如何设置的)

app.get('/', function(req, res, next) {
    res.render("base", {htmlWebpackPlugin: htmlWebpackPlugin});
});