Generated entry JS file for AOT thinks I'm not using AOT
@jasongin 已經在處理了。
開始於 2025年3月14日。
評估
這個 Issue 還沒有評估資料。
描述
I'm building an AOT module with the following .csproj file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishAot>true</PublishAot>
<PublishNodeModule>true</PublishNodeModule>
<PublishDir>bin</PublishDir>
<PackNpmPackage>true</PackNpmPackage>
<PackageOutputPath>pkg</PackageOutputPath>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.JavaScript.NodeApi" Version="0.9.5" />
<PackageReference Include="Microsoft.JavaScript.NodeApi.Generator" Version="0.9.5" />
</ItemGroup>
</Project>
After dotnet publish, I get a valid AOT .dll file with the following .js entry file generated:
// Generated for: NativeModule 1.0.0.0
// Generated by: Microsoft.JavaScript.NodeApi.Generator 0.9.0.0
/* eslint-disable */
const dotnet = require('node-api-dotnet/net8.0');
const path = require('node:path');
// @ts-ignore - https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/65252
const { dlopen, platform, arch } = require('node:process');
const moduleName = path.basename(__filename, __filename.match(/(\.[cm]?js)?$/)[0]);
module.exports = dotnet ? importDotnetModule(moduleName) : importAotModule(moduleName);
function importDotnetModule(moduleName) {
[...]
}
function importAotModule(moduleName) {
[...]
}
Note the module.exports = dotnet ? importDotnetModule(moduleName) : importAotModule(moduleName); line which is the culprit here - because I'm using AOT, it's supposed to call importAotModule rather than importDotnetModule. However, I'm not sure how this is supposed to work:
- If I have
node-api-dotnetin my dependencies,require('node-api-dotnet/net8.0')works, i.e. it returns a truthy value, soimportDotnetModulegets called (which fails) - If I don't have
node-api-dotnetin my dependencies (as in the example), the require throws and I can't import the module
I feel I'm missing something here, how am I supposed to "tell" the generator or runtime I'm using AOT?
- 主要語言
- C#
- 星號
- 783
- 分支
- 80
- PR 合併指標
- 30 天內沒有已合併 PR
環境準備
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
microsoft/node-api-dotnet 的其他 Issue
-
難度 1/5 1-3 小時 新手友好度 88/100
microsoft/node-api-dotnet#484 ·
-
難度 2/5 1-3 小時 新手友好度 82/100
microsoft/node-api-dotnet#481 ·
-
難度 5/5 一週以上 新手友好度 35/100
microsoft/node-api-dotnet#486 · 1 則留言 ·
-
難度 5/5 一週以上 新手友好度 35/100
microsoft/node-api-dotnet#483 · 1 則留言 · 1 個 reaction ·
-
難度 4/5 3-5 天 新手友好度 45/100
microsoft/node-api-dotnet#479 ·
查看 microsoft/node-api-dotnet 的全部 Issue
相似的 Issue
-
[Simple] NavigationBar primary commands do not render AppBarButton.Content when it is a UIElement未關閉control/navigationbar kind/bug triage/untriaged
難度 2/5 1-3 小時 新手友好度 90/100
unoplatform/uno.toolkit.ui#1652 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 88/100
microsoft/copilot-camp#1053 ·
維護者通常 1 天內回覆
-
bug effort:S P3
難度 2/5 1-3 小時 新手友好度 84/100
nightscout/nocturne#1861 ·
維護者通常 1 天內回覆
-
agentic-workflows area/Docs partner/agentic-workflows
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
microsoft/fluentui-blazor#5364 ·
維護者通常 1 天內回覆