mocha 相当于 webpack 的 resolve root
mocha equivalent to webpack's resolve root
我正在编写一些加载具有如下路径的代码的 mocha 测试:
import MyStore from "stores/MyStore"
这在网络浏览器中工作正常,因为我们正在使用 webpack-dev-server
,它反过来从 webpack.config.js
读取这个条目:config.resolve.root: [path.resolve(__dirname, "./app")]
所以它知道找到 ./app/stores/MyStore
.
当 运行 来自 mocha --compilers js:babel/register
时,此路径不起作用。我试图找到一个我可能会用到的包或配置。这将使我们不必更改可能的代码引用,当然还能使我们的导入更具可移植性。
不确定是否重要,我们使用 iojs。如果确实无法做到这一点,那么只需更新路径就可以了。谢谢...
如何将您的 app
目录包含在 $NODE_PATH
中:
env NODE_PATH=$NODE_PATH:$PWD/app mocha ...
在 windows 中,我必须这样做:
set NODE_PATH=%CD%/app&& mocha...
出于某种原因,在 'app' 之后添加 space 会导致它不起作用
这是一个跨平台的方法。首先安装 cross-env
:
npm install cross-env --save-dev
然后在你的 package.json
:
"scripts": {
...
"test": "cross-env NODE_PATH=./app mocha ..."
}
我正在编写一些加载具有如下路径的代码的 mocha 测试:
import MyStore from "stores/MyStore"
这在网络浏览器中工作正常,因为我们正在使用 webpack-dev-server
,它反过来从 webpack.config.js
读取这个条目:config.resolve.root: [path.resolve(__dirname, "./app")]
所以它知道找到 ./app/stores/MyStore
.
当 运行 来自 mocha --compilers js:babel/register
时,此路径不起作用。我试图找到一个我可能会用到的包或配置。这将使我们不必更改可能的代码引用,当然还能使我们的导入更具可移植性。
不确定是否重要,我们使用 iojs。如果确实无法做到这一点,那么只需更新路径就可以了。谢谢...
如何将您的 app
目录包含在 $NODE_PATH
中:
env NODE_PATH=$NODE_PATH:$PWD/app mocha ...
在 windows 中,我必须这样做:
set NODE_PATH=%CD%/app&& mocha...
出于某种原因,在 'app' 之后添加 space 会导致它不起作用
这是一个跨平台的方法。首先安装 cross-env
:
npm install cross-env --save-dev
然后在你的 package.json
:
"scripts": {
...
"test": "cross-env NODE_PATH=./app mocha ..."
}