Node.js中如何导出名称含特殊字符的模块?
在Node.js中导出含特殊字符的名称
当你需要导出包含特殊字符(比如连字符-)的名称时,直接写未加引号的别名会触发语法错误——这类字符不属于JavaScript合法标识符的范畴。以下是两种可行的解决方法:
ES模块(ESM)写法
将含特殊字符的别名用引号包裹,明确告诉引擎这是一个导出名称而非标识符:
export { default as 'update-rfnsa-task' } from './update-rfnsa-task';
如果是从模块导入后再导出,也可以这样写:
import task from './update-rfnsa-task'; export { task as 'update-rfnsa-task' };
对应的导入方式
导入时同样需要用引号包裹名称,再通过as重命名为合法标识符使用:
import { 'update-rfnsa-task' as updateRfnsaTask } from './your-module.js'; // 或者通过模块对象的属性访问 import * as taskModule from './your-module.js'; const updateRfnsaTask = taskModule['update-rfnsa-task'];
CommonJS写法
如果你的Node.js项目使用CommonJS规范,直接通过module.exports的属性赋值即可:
module.exports['update-rfnsa-task'] = require('./update-rfnsa-task').default;
对应的导入方式
const taskModule = require('./your-module.js'); const updateRfnsaTask = taskModule['update-rfnsa-task'];
内容的提问来源于stack exchange,提问作者Pradeep Poojari
相关产品推荐
相关产品推荐

