Давайте еще раз поясним: мне не нужно process.cwd
в этом вопросе, мне нужно
доступ к абсолютному пути исходного проекта. Например:
- Исходный код:
C:\Users\user1\projects\lib1\src\library.ts
(становится для Node Module в будущем)
- Проект, который использует библиотеку:
C:\Users\user1\projects\someProject\src\someProject.ts
Итак, мне нужно получить C:\Users\user1\projects\lib1\src
внутри library.ts
.
Я пытался:
webpack.config.js
module.exports = {
// ...
target: 'node',
externals: [nodeExternals()],
plugins: [
new Webpack.DefinePlugin({
__PROJECT_ROUTE_ABSOLUTE_PATH__: __dirname
})
]
};
проект-types.d.ts
declare var __PROJECT_ROUTE_ABSOLUTE_PATH__: string;
Если попробовать console.log(__PROJECT_ROUTE_ABSOLUTE_PATH__)
в library.ts
, ниже недопустимый JavaScript
будет произведено:
console.log(C:\Users\user1\projects\lib1);
Путь правильный, но цитаты отсутствуют. Я не знаю, как это объяснить.
Но в любом случае, как мы можем найти правильный путь?
Существует также странное явление: если вызвать __dirname
, просто будет возвращено /
, поэтому path.resolve(__dirname, 'fileName') gives
C: \ fileName `
