有没有办法接收当前的文件路径,比如在requirejs中?
define(['module'], function (module) {
console.log(module.uri)
});
答案 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}'`
},
[]
)
})