我想从我的 graphql
定义中清除节点的缓存,但是在我更改 require('my.graphql')
语句所在的文件之前,什么也不会发生。我认为这个问题与这个问题有关,我尝试做:
Object.keys(require.cache).forEach(function(key) {
delete require.cache[key];
});
但不会重新加载代码。我想念的其他缓存一定是我想念的。
由于该示例有点长,所以我已经分配了此仓库,并创建了一个GraphQl-Branch,您可以安装和测试适应src/schema.graphql
文件:
git clone git@github.com:gforge/graphql-relay-mongodb-pagination.git
cd graphql-relay-mongodb-pagination
git checkout git checkout mongoose-w-gql-lang
npm install
require('my.graphql')
是通过babel-plugin-inline-import介导的。
,因此事实证明问题实际上是Babel的缓存而不是节点的缓存。更改package.json中的开始:
...
"start": "babel-node ./src/index.js",
to
...
"start": "BABEL_DISABLE_CACHE=1 babel-node ./src/index.js",
修复了问题。
babel文档建议
BABEL_CACHE_PATH=/foo/my-cache.json babel-node script.js # default in /tmp/
BABEL_DISABLE_CACHE=1 babel-node script.js
require('babel-register')({ cache: false });
- https://babeljs.io/docs/usage/babel-register/
但是,在Intellij中调试时,这在Windows 7上不起作用。经过大量的谷歌搜索,我发现它真正居住的地方
C:Usersusername.babel.json
%USERPROFILE%.babel.json
$USERPROFILE/.babel.json # cygwin
- https://github.com/babel/babel/issues/1148
您可以将脚本添加到您的软件包。
{
"scripts": {
"clean": "del %USERPROFILE%/.babel.json",
"clean": "bash -c 'rm -vf $USERPROFILE/.babel.json'"
}
}
如果您使用的是WebPack,则可以动态地注入一个cachedirectory:参数为.babelrc文件,以便删除
babel节点如果将其直接添加到文件
,则会引发错误webpack.config.js
const _ = require('lodash');
const JSON5 = require('json5');
const babelrc = _.extend(
// WARNING: ./.babel-cache/ may occasionally get corrupted and need "npm run clean"
// POSITIVE: ./.babel-cache/ provides a ~30% speed increase in recompile times
{ cacheDirectory: !argv.production && './.babel-cache' },
JSON5.parse(fs.readFileSync('./.babelrc'))
);
而不是禁用您可能更喜欢清除缓存:
$ rm -rf ./node_modules/.cache