为了账号安全,请及时绑定邮箱和手机立即绑定

webpack问题,这个path.join干啥用的,直接写相对路径不行?

webpack问题,这个path.join干啥用的,直接写相对路径不行?

qq_笑_17 2019-03-22 19:15:27
output: {        path: path.join(__dirname, './dist'),        filename: '[name].js',        publicPath: '/dist/'    },写成./dist,为何这么写(下面是我的写法)var path = require('path');// 定义路径var ROOT_PATH = path.resolve(__dirname);var APP_PATH = path.resolve(ROOT_PATH, 'app');var BUILD_PATH = path.resolve(ROOT_PATH, 'build');module.exports = {    // 项目的文件夹    entry: './src/app.js',    // 输出的文件名 合并以后的js会命名为bundle.js    module: {        // 加载器        loaders: [{            test: /\.css$/,            loader: 'style-loader!css-loader'        }, {            test: /\.(png|jpg|gif)$/,            loader: 'url-loader?limit=8192'        }, ]    },    output: {        path: BUILD_PATH,        filename: '[name].js'    },};
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

主要还是为了容错。


如果你只是单单写了


output: {

    path: './build',

    filename: '[name].js'

}

你觉得这个相对的./build指的是哪个目录?到底是相对“谁”啊?


其实相对的不是你期望的当前脚本所在目录,而是相对于你在哪个目录执行的webpack命令,就是cli里常说的current working directory。所以如果当你执行命令的目录和webpack.config.js在同一个目录时,没有任何问题。不过要是换个目录执行,你试试看嘛^^


查看完整回答
反对 回复 2019-04-22
?
ITMISS

TA贡献1871条经验 获得超8个赞

var webpack = require('webpack')

var path = require('path')


module.exports = {

    entry: path.join(__dirname ,'js/app/index.js'),

    output: {

        path: path.join(__dirname, '../public/js'),

        filename: 'merge.js'

    }

}


var entry1 = path.join(__dirname,'js/app/index.js')


console.log(entry1)

在上面代码中,我将入口文件设置为path.join(__dirname,'js/app/index.js'),那么这个路径到底是什么呢?这还不简单,我把它打印出来看一下不就知道了吗?

https://img1.sycdn.imooc.com//5cbd7fdf0001898c04080186.jpg


你确定这是绝对路径吗?路径最开始明明是/User啊?

LINUX系统中 绝对路径 以“/”为起始 例:/home/user1/abc.txt。

在我的电脑中就是/Users


查看完整回答
反对 回复 2019-04-22
  • 3 回答
  • 0 关注
  • 1610 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号