webpack中的当前文件路径

webpack

16892 观看

3回复

563 作者的声誉

有没有办法接收当前的文件路径,比如requirejs?

define(['module'], function (module) {
    console.log(module.uri)
});
作者: Sergey Lapin 的来源 发布者: 2014 年 8 月 28 日

回应 (3)


34

9396 作者的声誉

决定

是的,有一个:__filename

但默认情况下,webpack不会泄漏路径信息,您需要设置配置标志以获取真实文件名而不是mock("/index.js")。

// /home/project/webpack.config.js
module.exports = {
  context: __dirname,
  node: {
    __filename: true
  }
}

您可以使用__filename获取相对于context选项的当前文件名:

// in /home/project/dir/file.js
console.log(__filename);
// => logs "dir/file.js"

文件名仅嵌入到使用的模块中__filename。因此,您不必担心路径会从其他模块中泄露出来。

作者: Tobias K. 发布者: 29.08.2014 09:14

3

604 作者的声誉

要获取文件名,我将其添加到web包配置中

node : {
   __filename: true,
   __dirname: true,
},

将上下文设置为__dirname搞砸了我的web pack配置,因为我的webpackconfig没有放在root中,但路径是这样设置的

作者: P-A 发布者: 26.04.2017 06:03

1

39 作者的声誉

尝试webpack.DefinePluginwebpack.DefinePlugin.runtimeValue。它给出了真正的常量,这对于require()import

new webpack.DefinePlugin({
__NAME: webpack.DefinePlugin.runtimeValue(
    v => {
        const res = v.module.rawRequest.substr(2)
        return JSON.stringify(res); // Strings need to be wrapped in quotes
    },
    []
)
})

作者: ilya 发布者: 16.01.2019 12:42
32x32