有一个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"
},