ES6 모듈을 사용하기 위해 노드 응용 프로그램을 실행할 때 플래그 --experimental-modules
을 사용합니다.--experimental-modules 플래그를 사용할 때 노드의 __dirname 대신 사용
그러나이 플래그를 사용하면 메타 변수 __dirname
을 사용할 수 없습니다. 이 모드와 호환되는 __dirname
에 저장된 동일한 문자열을 얻는 다른 방법이 있습니까?
ES6 모듈을 사용하기 위해 노드 응용 프로그램을 실행할 때 플래그 --experimental-modules
을 사용합니다.--experimental-modules 플래그를 사용할 때 노드의 __dirname 대신 사용
그러나이 플래그를 사용하면 메타 변수 __dirname
을 사용할 수 없습니다. 이 모드와 호환되는 __dirname
에 저장된 동일한 문자열을 얻는 다른 방법이 있습니까?
이 import.meta
을 통해 이러한 변수를 노출에 대한 제안하고,하지만 지금, 당신은 내가 here을 발견 해키 해결 방법이 필요했다 : 내 솔루션 나는 또한이 문제에있어
// expose.js
module.exports = {__dirname};
// use.mjs
import expose from './expose.js';
const {__dirname} = expose;
을 :
을 ./src/app.mjs :
app.set('views', path.join(path.resolve('./src'), 'views'));
여기 내 폴더에 대한 정보가 조직 :
는
./package.json
"scripts": {
"start": "node --experimental-modules ./index.mjs"
},
import server from './src/bin/www.mjs';
server.start();
그것은
__dirname
로 내 윈도우 PC의 올바른 경로를 반환 것 ./index.mjs.
['__dirname'] (https://esdiscuss.org/topic/nodejss-filename-dirname-in-es6-modules)을 ES6에서 작동 시키려면 다음과 같이하십시오. – kgangadhar