访问车把模板中的环境变量

时间:2019-04-25 13:42:40

标签: javascript vue.js handlebars.js

我需要从车把模板访问环境变量。我可以在其他地方使用环境变量,因此我知道它的设置正确。但是在运行browserify之后,我的index.html页面仅显示g.src = process.env.MTM;而不是g.src = myEnvironmentVariable

这是我模板中的相关代码:

    <script type="text/javascript">           
        var _mtm = _mtm || [];
        _mtm.push(
        {
            'mtm.startTime': (new Date().getTime()),
            'event': 'mtm.Start'
        });
        var d = document,
            g = d.createElement('script'),
            s = d.getElementsByTagName('script')[0];
        g.type = 'text/javascript';
        g.async = true;
        g.defer = true;
        g.src = process.env.MTM;
        s.parentNode.insertBefore(g, s);
    </script>

我收到一条错误消息,指出未定义过程。

(index):28 Uncaught ReferenceError: process is not defined

有没有办法做到这一点?我会以错误的方式处理吗?我需要根据要编译的环境将g.src设置为不同的URL。

1 个答案:

答案 0 :(得分:0)

我知道了。我只需要通过gulp将其通过管道传递到模板即可。

return gulp

    .pipe(hb()            
        .data({
            version: pkg.version,
            date: new Date().toISOString(),
            env: process.env.NODE_ENV,
            mtmUrl: process.env.MTM,
            serverData,
        })           

然后我可以这样访问它:

g.src= {{mtmUrl}};