webpack中的当前文件路径

时间:2014-08-28 16:40:09

标签: webpack

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

define(['module'], function (module) {
    console.log(module.uri)
});

3 个答案:

答案 0 :(得分:34)

是的,有一个:__filename

但默认情况下,webpack不会泄漏路径信息,您需要设置配置标志以获取真实文件名而不是模拟("/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的模块中。因此,您不必担心路径会从其他模块中泄露出来。

答案 1 :(得分:3)

要获取文件名,我将其添加到web pack config

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

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

答案 2 :(得分:0)

尝试将webpack.DefinePlugin与webpack.DefinePlugin.runtimeValue一起使用。它给出了实常数,这对于require()和import

new webpack.DefinePlugin({
			__NAME: webpack.DefinePlugin.runtimeValue(
				v => {
					const res = v.module.rawRequest.substr(2)
					return `'${res}'`
				},
				[]
			)
		})