将variables添加到连接资产

我试图从我的app.js文件中添加一些variables到由connect-assets编译的文件中。

我有一个名为file.ejs的文件

 <%- js('code.js') %> <input type="text" value="Doe"> 

app.js我有:

  app.locals.url = 'http://123.123.123.123' 

code.js我想根据系统添加一些生产/开发variables( <%- url %> )。 当我尝试这样做时,添加的variables被拒绝,因为connect-assets正在将它们编译为标记。 将variables传入code.js的正确方法是什么?

code.js被视为一个静态文件,所以你不能从EJS模板传入variables。 通常在这种情况下,你正在传递的是基于环境的数据,你可以设置一些你可以在code.js读取的全局configurationvariables。

而不是像这样的值设置app.locals ,你可以在不同的环境中设置一些设置。 在你的代码中说你有这个:

 var environments = { production: { url: 'http://1.1.1.1' }, development: { url: 'http://2.2.2.2' } }; 

当您渲染主页面模板或者可以轻松访问的地方时,无论您处于什么环境,都可以传递适当的设置。渲染模板时,您将传递设置。 html = new EJS(...).render({settings: settings['production']});

 <html> <head> <script type="text/javascript"> var AppSettings = <%= JSON.stringify(settings); %>; </script> ... 

然后在你的code.js文件里面,你可以直接读取AppSettings.url