pug.compiler.js 的代码是:
/**
* Pug Utilities
*/
const {compileFile} =require('pug');
/**
*
* @param {String} relativeTemplatePath Pug template name
* @param {Object} [data] Object
* @returns {String} HTML
*/
export function compile(relativeTemplatePath, data){
let absoluteTemplatePath = process.cwd() + '/src/views/' + relativeTemplatePath + '.pug';
let compiledTemplate = compileFile(absoluteTemplatePath)(data);
return compiledTemplate;
};
错误是:
export function compile(relativeTemplatePath, data){
^^^^^^
SyntaxError: Unexpected token 'export'
at wrapSafe (internal/modules/cjs/loader.js:984:16)
at Module._compile (internal/modules/cjs/loader.js:1032:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
at Module.load (internal/modules/cjs/loader.js:933:32)
at Function.Module._load (internal/modules/cjs/loader.js:774:14)
at Module.require (internal/modules/cjs/loader.js:957:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (D:\ProgramData\projects\nodejs\whatsapp\test\app.js:11:22)
at Module._compile (internal/modules/cjs/loader.js:1068:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1097:10)
所以我在理解如何使用此导出功能时遇到问题。我认为它应该可以正常工作?
答案 0 :(得分:0)
问题是 NodeJS 默认将模块视为 CommonJS Modules。
因此,您应该使用 export
而不是 module.exports
,或者如果您使用的是 NodeJS v13+,您可以通过以下任一方式启用 ES 模块:
mjs
"type": "module"
属性添加到您的 package.json
使用 module.exports
应该是这样的:
function compile(relativeTemplatePath, data){
let absoluteTemplatePath = process.cwd() + '/src/views/' + relativeTemplatePath + '.pug';
let compiledTemplate = compileFile(absoluteTemplatePath)(data);
return compiledTemplate;
};
module.exports = {compile};