[英]Node.js + Webpack + TypeScript: access to path of project with source files (not usage project)
讓我們再次明確:我在這個問題中不需要process.cwd
,我需要訪問源項目的絕對路徑。 例如:
C:\\Users\\user1\\projects\\lib1\\src\\library.ts
(以后變成Node Module)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') gives
C:\\fileName `
您可以直接使用內置的 node.js path
模塊。 path 模塊提供了用於處理文件和目錄路徑的實用程序。 可以使用以下方式訪問它:
const path = require('path');
__filename 是當前模塊的文件名。 這是當前模塊文件的解析絕對路徑。 (例如:/home/user/some/dir/file.js)
__dirname 是當前模塊的目錄名。 (例如:/home/user/some/dir)
fs.readFile(path.resolve(__dirname + 'fileName'))
這將解析為文件的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.