如何在`mix test`命令上调用webpack

问题描述

我正在编写一个仅在运行测试时存在的小型测试应用程序,否则不存在。因此,我希望 webpack 在启动时执行资产复制。

package.json中我添加

"scripts": {
    "test_pack": "webpack --mode development"
  },

现在我不确定如何在调用 npm run test_pack 时正确捆绑 mix test 以使其工作?

解决方法

在您的 mix.exs 中,您可以创建 aliases。也许 test 已经有了一个别名,例如(如果您碰巧使用 ecto):

  test: ["ecto.create --quiet","ecto.migrate --quiet","test"]

添加你要运行的npm命令,可以使用cmd任务,它实际上是在执行一个mix.cmd

  test: ["cmd npm run test_pack","ecto.create --quiet","test"]

不过,来自 mix.cmd docs 的一个警告,不知道这对您的情况是否重要,但是:

请注意,Erlang VM 在关闭时不会终止子进程。因此,如果您使用 mix cmd 启动长时间运行的进程,然后关闭虚拟机,这些子进程很可能不会随虚拟机一起终止。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...