ijse / freemarker.js

make freemarker available for node.js with FMPP.
http://freemarker.js.org/
MIT License
111 stars 41 forks source link

在macOS 使用会报错 #31

Closed mcattx closed 6 years ago

mcattx commented 6 years ago

我的环境是 macOS 10.12.6Java 版本是 1.7.0Node.js 版本是 v8.7.0

在编译 ftl 的时候,遇到类似报错:

Error: Command failed: /Users/sohu-mp/kz/mp-fe/node_modules/.1.3.0@freemarker.js/fmpp/fmpp /Users/sohu-mp/kz/mp-fe/templates/index_v3/index.ftl -C /var/folders/vw/35zvq2ws15b0t_zvl194cf6w0000gn/T/f3a5461f-3698-4d84-bcbc-f689df30bd06

但是语法那些保证是没有错误的,另外,同样代码我切换到 windows 平台是能运行的。我怀疑是 npm 上的 fmpp 不兼容 macOS

我通过以下步骤解决我的问题:

  1. fmpp 官网 下载 OSX 版本的 fmpp
  2. 解压 fmpp.zip,然后打开 bin 目录,复制里面的 fmpp fmpp.bat Icp.bat 三个文件,然后打开 node_modules 目录下 freemarker 依赖的 fmpp 目录,替换三个同名文件

以上步骤解决了我的问题,不知道对你们有没有帮助。

ijse commented 6 years ago

感谢分享

但是我在 high Sierra , Node v8.8.1, Java 9.0.1 环境下测试正常,并没有出现fmpp不兼容问题。

在这里附带下Mac下正确安装Java JDK步骤:

  1. 安装brew, brew cask
  2. brew cask install java
  3. export JAVA_HOME="$(/usr/libexec/java_home)"
  4. java --version

然后可以试下clone freemarker.js 代码,跑下测试