mocha.opts参考babelhook一个目录

时间:2015-09-03 15:49:52

标签: docker npm config mocha

有一个mocha.opts文件

--require babelhook

似乎babelhook需要与node_modules目录位于同一目录中。所以

--myApp
  --node_modules
  --babelhook.js
  --tests
    --mocha.opts
    --mytest

这很好,但是,我需要的东西(如果你关心为什么我会在最后解释)是这个结构

--node_modules
--myApp
  --babelhook.js
  --tests
    --mocha.opts
    --mytest

这不起作用。我得到摩卡错误“找不到模块babelhook” 我试过让mocha.opts文件相对。所以

--require ../babelhook

以及其他各种尝试。但后来我得到“找不到模块../ babelhook”

如果我将node_modules移回一个级别,它可以正常工作。反正有吗?

此文件夹结构的原因是我有一个使用我的硬盘驱动器中的卷的docker容器。 docker容器构建它时的docker将执行npm install,然后将所有内容从本地路径复制到容器(volume action)。这会覆盖node_modules。所以我执行npm install然后将其移动到一个文件夹中,这样卷拷贝就不会覆盖它。

任何帮助将不胜感激

修改 Dockerfile

FROM node:latest

MAINTAINER reharik@gmail.com

ENV PLUGIN_HOME /home/app/current

RUN npm install mocha -g
RUN npm install babel -g

RUN mkdir -p $PLUGIN_HOME

WORKDIR $PLUGIN_HOME

ADD ./package.json $PLUGIN_HOME/package.json

RUN npm install
RUN mv node_modules ../

ADD . $PLUGIN_HOME

搬运工-compose.yml

plugin:
 build: .
 volumes:
  - .:/home/app/current
 command: tail -f /dev/null
 environment:
  DEBUG: true
  NODE_ENV: development
来自package.json的

"scripts": {
    "test": "mocha --opts ./tests/mocha.opts ./tests/unitTests/*.js"
  },

0 个答案:

没有答案