Ошибка: output.path должен быть абсолютным путем или /

Это мой файл 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> но он существует только на локальном хосте (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 ответ

Решение

Использование path за это:

var path = require('path');

....

output: {
  path: path.join(__dirname, './dist/assets'),
Другие вопросы по тегам