解决:webpack 编译成功了,没有生成的文件

问题

webpack 编译成功,没有任何的报错或警告,就是没有生成的文件。

这是我开始的配置

const path = require("path");

module.exports = {
    entry: './src/js/main.js',
    module: {
        rules: [
            {
                test: /\.css$/,
                use: ['style-loader', 'css-loader'],
            },
        ],
    },
    mode: "development",
    output: {
        path: path.resolve(__dirname, '/dist'),
        filename: "bundle.js",
    },
};

解决方案

path改为path.resolve(__dirname, 'dist')即可。

原因

path.resolve() 方法会将传入的路径解析为绝对路径,因此,如果在调用 path.resolve() 时传递了斜杠(/),则生成的路径将包含根目录。即变成了/distwebpack找不到这个文件夹。

1、不带参数时
path.resolve() 返回的是当前的文件的绝对路径/Users/xxxx/
2、带不是/开头的参数
path.resolve('a') 返回的是当前绝对路径拼接现在的参数/Users/xxxx/a
path.resolve('a','b') 返回的是当前绝对路径拼接现在的参数/Users/xxxx/a/b
3、带./开头的参数
path.resolve('./a') 返回的是当前绝对路径拼接现在的参数/Users/xxxx/a
path.resolve('./a','./b') 返回的是当前绝对路径拼接现在的参数/Users/xxxx/a/b
4、带/开头的参数 返回的是 /+‘最后一个前面加/的文件文件名’+‘剩下文件夹
path.resolve('/a') 返回的是当前绝对路径拼接现在的参数/a
path.resolve('/a','/b') 返回的是当前绝对路径拼接现在的参数/b
path.resolve('/a','/b', 'c') 返回的是当前绝对路径拼接现在的参数/b/c

其他
Node.js 中,__dirname 总是指向被执行 js 文件的绝对路径。

参考链接

https://www.jianshu.com/p/3a713442b70b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值