使用 PyExecJS2 庫時 js 引用包的模組路徑問題

灵火發表於2024-09-14

目錄結構

/project-root
│
├── main.py
└── js
    ├── sha1.js
    └── index.js

main.py

import os
import execjs

# 將js資料夾路徑設定到 NODE_PATH 環境變數即不會引發require匯入時找不到包的問題
current_dir_path = os.path.dirname(os.path.abspath(__file__))
js_module_dir = f'{current_dir_path}/js'
os.environ['NODE_PATH'] = js_module_dir

with open('./js/index.js') as f:
  js_str = f.read()
  js_ctx = execjs.compile(js_str)
  
  js_ctx.call(add, 1, 2)

index.js

const CryptoJS = require('./sha1.js')

function add (a, b) {
	return a + b
}

相關文章