esm icon indicating copy to clipboard operation
esm copied to clipboard

fs.watch load file has cache

Open mannymu opened this issue 2 years ago • 1 comments

`const fs = require('fs'); const path = require('path');

require('@babel/register')({ cache: false, });

process.env.ESM_DISABLE_CACHE = true

const requireModule = require('esm')(module, { cache: false, cjs: { cache: false }, force: true } );

const getESM = (path)=>{ let esmModule = {}; try { esmModule = requireModule(path); } catch (e) { console.trace('requireModule Error:', e); } //本地开发时,fs.watch重新打包时有问题 return esmModule.default || esmModule; }

const baseDir = path.resolve(__dirname,"./src");

function build(){ let result = getESM(path.resolve(baseDir, './config.js')); console.log(result); }

build(); fs.watch(baseDir,{ persistent: true, recursive: true },(, filename)=>{ console.log(,filename); build() }); ` When I change the config.js file, the result is still cached before.

node : v16.13.1 npm: 8.1.2

mannymu avatar May 19 '22 11:05 mannymu

image

I have solved it

mannymu avatar May 20 '22 01:05 mannymu