2017-06-22 50 views
0

我有我认为是一个ejs问题,克隆了一个github回购,并没有真正使用ejs之前,我有一些问题。奇怪的是,我可以得到回购到本地主机上运行,​​但在IDE中,我得到以下几点:ejs问题加载htmlWebpackPlugin(未定义)

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) 

我已经安装了最新版本的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版本上的本地主机之间会出现什么问题?有些显而易见的东西,比如'public'可能会变成IDE文件夹名称,或者是一些同样小的东西。

谢谢!

Tom

+0

哪里是'htmlWebpackPlugin'定义?在服务器脚本上? – Wright

+0

是的,它看起来就是这样 - 有一个webpack.config.js文件,它与server.js是分开的。 Github回购在这里https://github.com/lingochamp/OnlineScorer-Web – tbuckham

回答

1

您必须将变量以对象的形式传递给呈现器。你也传递变量或者通过require在同一个文件中存在的荷兰国际集团,或定义它。(我不知道究竟你如何设置)

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

谢谢 - 我还没有真正做过很多的github回购https://github.com/lingochamp/OnlineScorer-Web上的变化,我导入到IDE中。为了让它和localhost一起工作,我只是做了npm install,全局安装了express,然后添加了一些路径到相关的文件夹(和ejs作为视图引擎),然后运行npm start。在IDE中执行此操作没有奏效 - 我在'example'目录中完成了npm install(无效)+在主node_modules目录中安装了htmlWebpackPlugin(+在上面添加了您的建议) - 既不会改变任何东西。这似乎很奇怪,它可以在localhost上运行好吧 – tbuckham

+0

ps.s. repo的结构建议htmlWebpackPlugin在.../example/webpack.config.js文件中定义,并且这似乎在主package.json脚本中被引用:“scripts”:{“{”}“build”:“webpack -w“ }, – tbuckham