为apache2设置webpack环境变量

时间:2018-03-22 08:23:13

标签: node.js apache webpack vue.js typo3

是否可以在node / js范围之外获取webpack envvar?

我正在使用vueJS和TYPO3进行开发,并希望在运行时从节点服务器加载JS文件。否则,我想从项目文件夹中加载构建的JS文件。 TYPO3具有文件加载的条件,取决于Apache envvar。

far

问题:

  1. 在通过webpack启动节点devserver时是否可以设置apache2 envvar?
  2. 如果没有,是否可以挂钩该进程并编写一个带有var的临时htaccess文件,将其放在特定目录中并删除它,当我停止节点服务器时?
  3. 背景:

    在TYPO3中,js和css包含由TypeScript配置。 在Prod Env:

    SetEnv TYPO3_CONTEXT Development
    

    可以通过条件更改此负载:

    page.includeJSFooter.app = path/to/build/name.js
    

    现在我想设置这个上下文,一旦我启动我的动态构建文件的节点开发服务器:

    [applicationContext = Development]
    page.includeJSFooter.app = http://192.168.100.38:8080/app.build.js
    [end]
    

2 个答案:

答案 0 :(得分:0)

我怀疑这是可能的,但作为一种解决方案,我建议实现自定义条件(在手册https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/TypoScriptSyntax/TypoScriptParserApi/CustomConditions.html中描述)并在其中检查,例如,如果节点服务器正在响应请求。

答案 1 :(得分:0)

格奥尔和其他所有人,

自定义条件是一种解决方案,但我不想影响生产环境(例如,ping节点服务器的响应)。

我用两个shell脚本创建它,由webpack-shell-plugin执行。 第一个脚本被触发“onBuildStart”,寻找.htaccess文件并添加

SetEnv TYPO3_CONTEXT Development/NodeServer

到文件的末尾。 不幸的是,节点服务器关闭时没有事件被触发。作为一种解决方法,我添加了一个新的npm运行脚本,它只执行一个shell脚本,再次从.htaccess中删除该行。

我想有一个besser解决方案,但是在这个时候,它解决了我(很少)的问题,以避免每次我开始开发时都改变JS包含。