错误:output.path需要是绝对路径或/

时间:2017-03-03 04:31:08

标签: reactjs path webpack output devserver

这是我的webpack.config文件。当我运行webpack时,bundle.js正确写入project / dist / assets / bundle.js。

然而,当我运行npm start来提供文件时,我收到一个错误:

Error: output.path needs to be an absolute path or /

所以...如果我将路径设为绝对路径:"/dist/assets"path: __dirname + "/dist/assets"那么它可以很好地提供文件,并发出bundle.js,但它实际上并没有将它写入我的项目/ dist / assets文件夹。

页面看起来很好,当我查看源代码时,我看到<script src="/assets/bundle.js"></script>但它只存在于localhost(publicPath)上。

我哪里错了? npm的目标是开始将包写入我的项目文件夹并使用devServer提供它。

var webpack = require("webpack");

module.exports = {
  entry: "./src/index.js",
  output: {
    path: "./dist/assets",
    filename: "bundle.js",
    publicPath: "/assets"
  },
  devServer: {
    inline: true,
    contentBase: "./dist",
    port: 3000
  },
  module: {
    loaders: [{
      test: /\.js$/,
      exclude: /(node_modules)/,
      loader: ["babel-loader", "babel-loader?presets[]=latest,presets[]=stage-0,presets[]=react"]
    }, {
      test: /\.json$/,
      exclude: /(node_modules)/,
      loader: "json-loader"
    }, {
      test: /\.css$/,
      loader: "style-loader!css-loader!autoprefixer-loader"
    }, {
      test: /\.scss$/,
      loader: "style-loader!css-loader!autoprefixer-loader!sass-loader"
    }]
  }
}

1 个答案:

答案 0 :(得分:0)

使用path

var path = require('path');

....

output: {
  path: path.join(__dirname, './dist/assets'),