webpack+babel打包破坏了__dirname
发布于 2 天前 作者 nqdy666 186 次浏览 来自 问答

app/server.js

console.log(__dirname);

使用webpack + babel打包后, 生成的文件 build/server.bundle.js

function(__dirname) {
	console.log(__dirname);
}).call(exports, "app")

node build/server.bundle.js时, 输出本应该是 前缀路径/build, 然后输出的却是app。

晕·^· 如何使用webpack打包时使得__dirname不被破坏,或者是server.bundle.js运行时,获取server.bundle.js所在目录路径。

4 回复

我觉得。。。server脚本可以不用webpack+babel吧,直接指定支持es6的node版本就可以了。实在是想兼容低版本node,又怕破坏路径,可以打包到同一个路径下。举个例子: 开发的时候是: app/server.es6.js, 打包的目标路径是:app/server.js

同意1楼,webpack是用来打包客户端SPA的,拿来打包服务器端的js显示姿势不正确

webpack & browserify 都是给浏览器端打包用的。为了保护服务端的目录信息不被泄露,__dirname __filename 会有特殊处理

回到顶部