gpt4 book ai didi

Node.js + Webpack + TypeScript : access to path of project with source files (not usage project)

转载 作者:太空宇宙 更新时间:2023-11-04 00:02:12 24 4
gpt4 key购买 nike

让我们再次明确:在这个问题中我不需要 process.cwd,我需要访问源项目的绝对路径。例如:

  • 源代码:C:\Users\user1\projects\lib1\src\library.ts(将来成为 Node 模块)
  • 使用库的项目:C:\Users\user1\projects\someProject\src\someProject.ts

因此,我需要在 library.ts 中获取 C:\Users\user1\projects\lib1\src

我尝试过:

webpack.config.js

module.exports = {

// ...

target: 'node',
externals: [nodeExternals()],

plugins: [
new Webpack.DefinePlugin({
__PROJECT_ROUTE_ABSOLUTE_PATH__: __dirname
})
]
};

项目类型.d.ts

declare var __PROJECT_ROUTE_ABSOLUTE_PATH__: string;

如果在 library.ts 中尝试 console.log(__PROJECT_ROUTE_ABSOLUTE_PATH__),位于无效的 JavaScript 下方将产生:

console.log(C:\Users\user1\projects\lib1);

路径正确,但缺少引号。我不知道该如何解释。但无论如何,我们怎样才能找到正确的道路呢?

还有一个奇怪的现象:如果调用__dirname,只会返回/,所以path.resolve(__dirname, 'fileName')给出C:\fileName `

enter image description here

最佳答案

您可以直接使用内置的node.js path 模块。路径模块提供了用于处理文件和目录路径的实用程序。可以使用以下方式访问它:

const path = require('path');

__filename 是当前模块的文件名。这是当前模块文件的解析绝对路径。 (例如:/home/user/some/dir/file.js)

__dirname 是当前模块的目录名称。 (例如:/home/user/some/dir)

fs.readFile(path.resolve(__dirname + 'fileName'))

这将解析为文件的路径。

关于Node.js + Webpack + TypeScript : access to path of project with source files (not usage project),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54139652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com