2016-09-08 4 views
0

Сегодня, удалив мои node_modules и переустановив их с помощью установки npm, мой проект, похоже, не работает.Webpack 2 beta + history API не работает

Вот мой WebPack конфигурации

const webpack = require('webpack'); 
const path = require('path'); 

const srcPath = path.join(__dirname, './client'); 
const nodeEnv = process.env.NODE_ENV || 'development'; 
const isProd = nodeEnv === 'production'; 

module.exports = { 
    devtool: isProd ? 'hidden-source-map' : 'cheap-module-eval-source-map', 
    context: path.join(__dirname, './client'), 
    entry: { 
    js: './index.js', 
    vendor: ['react'] 
    }, 
    output: { 
    path: path.join(__dirname, './static'), 
    filename: 'bundle.js' 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.html$/, 
     loader: 'file', 
     query: { 
      name: '[name].[ext]' 
     } 
     }, 
     { 
     test: /\.scss$/, 
     loaders: ['style', 'css', 'sass'] 
     }, 
     { 
     test: /\.(js|jsx)$/, 
     exclude: /node_modules/, 
     loaders: ['babel-loader'] 
     }, 
     { 
     test: /\.(png|jpg|gif|otf|eot|svg|ttf|woff|woff2)/, 
     loader: 'url-loader' 
     }, 
     { 
     test: /\.(txt|json)/, 
     loader: 'raw-loader' 
     } 
    ], 
    }, 
    resolve: { 
    extensions: ['', '.js', '.jsx'], 
    modules: [ 
     path.resolve('./client'), 
     'node_modules' 
    ], 
    alias: { 
     stores: `${srcPath}/stores/`, 
     components: `${srcPath}/components/`, 
     services: `${srcPath}/services`, 
     models: `${srcPath}/models`, 
     constants: `${srcPath}/constants`, 
     sources: `${srcPath}/sources`, 
     images: `${srcPath}/assets/images`, 
     appConstants: isProd ? `${srcPath}/constants/_prod` : `${srcPath}/constants/_dev` 
    } 
    }, 
    plugins: [ 
    new webpack.IgnorePlugin(/regenerator|nodent|js\-beautify/, /ajv/), 
    new webpack.optimize.CommonsChunkPlugin({ 
     name: 'vendor', 
     minChunks: Infinity, 
     filename: 'vendor.bundle.js' 
    }), 
    new webpack.LoaderOptionsPlugin({ 
     minimize: true, 
     debug: isProd 
    }), 
    new webpack.optimize.UglifyJsPlugin({ 
     compress: { 
     warnings: !isProd 
     }, 
     output: { 
     comments: !isProd 
     }, 
     sourceMap: !isProd 
    }), 
    new webpack.DefinePlugin({ 
     'process.env': { NODE_ENV: JSON.stringify(nodeEnv) } 
    }), 
    new webpack.HotModuleReplacementPlugin(), 
    new webpack.optimize.OccurrenceOrderPlugin() 
    ], 
    devServer: { 
    contentBase: './client', 
    hot: true, 
    port: 3000, 
    historyApiFallback: true 
    } 
}; 

Мой «клиент» папка с index.html и остальная часть моего кода находятся в той же папке, WebPack конфигурации.

Webpack делает успешно строить, но собирается localhost:3000, я получаю сообщение об ошибке: «Не удается получить /»

Отправляясь localhost:3000/client/index.html действительно служит мой index.html, но мои встроенные файлы, вставленного с помощью

<script src="./vendor.bundle.js"></script> 
<script src="./bundle.js"></script> 

не загружается (GET to "http://localhost:3000/client/bundle.js" Результаты 404)

Кто-нибудь знает, что происходит? Я не могу исправить эту проблему, и я думаю, что я пробовал все: от изменения пути, publicPath до изменения contentBase и перемещения моих статических файлов в другую папку. Это очень странно, поскольку эта проблема появилась только после переустановки моих зависимостей проекта.

Порадует всякая помощь. Благодарю.

ответ

1

В [email protected] возникла проблема, из-за чего игнорировалась опция contentBase. Не могли бы вы попробовать перейти на 2.1.0-beta.4? Это было просто выпущено.

Смежные вопросы