如何使用webpack获取没有路径和扩展名的当前文件名?

时间:2017-10-04 18:27:39

标签: javascript node.js webpack

我可以get the relative file path使用__filename,并确定我可以将它分开以获得一些JS-fu的基本名称,但我想在编译时这样做。

DefinePlugin会让我注入一些像我想要的全局变量,但是AFAICT我不能拥有基于当前文件的“动态”全局变量。

那我怎么能这样做呢?

e.g。鉴于我在文件assets/scripts/lib/components/bpm/RecordAttendancePopup.jsx中,如何让webpack注入一个常量,如__basename,其值为"RecordAttendancePopup"

2 个答案:

答案 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”以获得你想要的东西之外别无他法。