清除Node.js';加载非js文件时缓存,例如graphql语言防御

清除Node.js';加载非js文件时缓存,例如graphql语言防御,node.js,babeljs,graphql,Node.js,Babeljs,Graphql,我想从我的graphql定义中清除节点的缓存,但在我更改require('my.graphql')语句所在的文件之前,什么也不会发生。我认为这个问题与以下方面有关,并且我已经尝试: Object.keys(require.cache).forEach(function(key) { delete require.cache[key]; }); 但它不会重新加载代码。肯定还有其他一些缓存正在进行,我错过了 因为这个示例有点长,所以我将其分叉,并创建了一个可以安装并测试src/schema.g

我想从我的
graphql
定义中清除节点的缓存,但在我更改
require('my.graphql')
语句所在的文件之前,什么也不会发生。我认为这个问题与以下方面有关,并且我已经尝试:

Object.keys(require.cache).forEach(function(key) {
  delete require.cache[key];
});
但它不会重新加载代码。肯定还有其他一些缓存正在进行,我错过了

因为这个示例有点长,所以我将其分叉,并创建了一个可以安装并测试
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')
是通过.

中介的,因此问题实际上是节点的。更改package.json中的开始:

...
"start": "babel-node ./src/index.js",


解决了这个问题。

巴贝尔文件建议

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 });
但在IntelliJ中调试时,这在Windows7上不起作用。在谷歌搜索了很多之后,我找到了它真正的生活地点

C:\Users\username\.babel.json
%USERPROFILE%\.babel.json  
$USERPROFILE/.babel.json       # cygwin
您可以向package.json中添加脚本来完成此操作

{
  "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\u modules/.cache

为什么返回
“BABEL\u DISABLE\u CACHE”未被识别为内部或外部命令
R u使用Linux?Windows可能需要不同的系统。我使用Windows进行开发,使用Linux进行生产。在生产中不应使用Babel节点。windows的解决方案很可能是不同的。请指导我,如何在linux服务器上运行我的
server.js
文件,node无法理解
ES6
codes lile
导入
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'))
);