我可以get the relative file path使用__filename
,并确定我可以将它分开以获得一些JS-fu的基本名称,但我想在编译时这样做。
DefinePlugin
会让我注入一些像我想要的全局变量,但是AFAICT我不能拥有基于当前文件的“动态”全局变量。
那我怎么能这样做呢?
e.g。鉴于我在文件assets/scripts/lib/components/bpm/RecordAttendancePopup.jsx
中,如何让webpack注入一个常量,如__basename
,其值为"RecordAttendancePopup"
?
答案 0 :(得分:2)
这是我在webpack.config.js
中使用的:
const path = require('path');
const webpack = require('webpack');
module.exports = {
plugins: [
new webpack.DefinePlugin({
__filebasename: webpack.DefinePlugin.runtimeValue(
info => JSON.stringify(path.parse(info.module.resource).name)
)
})
]
};
,然后在我的源代码中到处都有__filebasename
变量。可在Webpack 4和5中使用。
答案 1 :(得分:1)
我想除了基于https://github.com/webpack/webpack/blob/master/lib/DefinePlugin.js创建你自己的“DefinePlugin”以获得你想要的东西之外别无他法。