[解決済み】無効な設定オブジェクトです。APIスキーマと一致しない設定オブジェクトを使用してWebpackが初期化されました。
質問
オンラインコースで作成したシンプルなhelloworld reactアプリがありますが、このエラーが発生します。
無効な設定オブジェクトです。Webpack は以下のオブジェクトを使用して初期化されました。 API スキーマに一致しない設定オブジェクトです。 - configuration は未知のプロパティ 'postcss' を持っています。これらのプロパティは有効です: object { amd?, bail?, cache? devServer?, devtool?, entry, externals?, loader? node?、output?、performance?、plugins?、profile?、recordsInputPath? recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats? target?, watch?, watchOptions? } 誤字脱字について:修正をお願いします。
ローダーオプションについて: webpack 2 では、カスタムプロパティを を設定します。 loader は module.rules の loader options でオプションを渡せるように更新する必要があります。 loaderがアップデートされるまでは、LoaderOptionsPluginを使ってloaderにこれらのオプションを渡すことができます。 プラグインを使用します。[ new webpack.LoaderOptionsPlugin({... // test: /.xxx$/, // 一部のモジュールにのみ適用される可能性があります。 オプションで指定します。{ postcss: ... } }) ] - configuration.resolve に不明なプロパティ 'root' があります。これらのプロパティは有効です: object { alias?、 aliasFields? cachePredicate?, descriptionFiles?, enforceExtension? enforceModuleExtension?、extensions? mainFiles?、moduleExtensions?、modules?、plugins?、resolver?、mainFiles? symlinks?, unsafeCache?, useSyncFileSystemCalls? } - configuration.resolve.extensions[0] は空であってはならない。
私のウェブパックファイルは
// work with all paths in a cross-platform manner
const path = require('path');
// plugins covered below
const { ProvidePlugin } = require('webpack');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
// configure source and distribution folder paths
const srcFolder = 'src';
const distFolder = 'dist';
// merge the common configuration with the environment specific configuration
module.exports = {
// entry point for application
entry: {
'app': path.join(__dirname, srcFolder, 'ts', 'app.tsx')
},
// allows us to require modules using
// import { someExport } from './my-module';
// instead of
// import { someExport } from './my-module.ts';
// with the extensions in the list, the extension can be omitted from the
// import from path
resolve: {
// order matters, resolves left to right
extensions: ['', '.js', '.ts', '.tsx', '.json'],
// root is an absolute path to the folder containing our application
// modules
root: path.join(__dirname, srcFolder, 'ts')
},
module: {
loaders: [
// process all TypeScript files (ts and tsx) through the TypeScript
// preprocessor
{ test: /\.tsx?$/,loader: 'ts-loader' },
// processes JSON files, useful for config files and mock data
{ test: /\.json$/, loader: 'json' },
// transpiles global SCSS stylesheets
// loader order is executed right to left
{
test: /\.scss$/,
exclude: [path.join(__dirname, srcFolder, 'ts')],
loaders: ['style', 'css', 'postcss', 'sass']
},
// process Bootstrap SCSS files
{
test: /\.scss$/,
exclude: [path.join(__dirname, srcFolder, 'scss')],
loaders: ['raw', 'sass']
}
]
},
// configuration for the postcss loader which modifies CSS after
// processing
// autoprefixer plugin for postcss adds vendor specific prefixing for
// non-standard or experimental css properties
postcss: [ require('autoprefixer') ],
plugins: [
// provides Promise and fetch API for browsers which do not support
// them
new ProvidePlugin({
'Promise': 'es6-promise',
'fetch': 'imports?this=>global!exports?global.fetch!whatwg-fetch'
}),
// copies image files directly when they are changed
new CopyWebpackPlugin([{
from: path.join(srcFolder, 'images'),
to: path.join('..', 'images')
}]),
// copies the index.html file, and injects a reference to the output JS
// file, app.js
new HtmlWebpackPlugin({
template: path.join(__dirname, srcFolder, 'index.html'),
filename: path.join('..', 'index.html'),
inject: 'body',
})
],
// output file settings
// path points to web server content folder where the web server will serve
// the files from file name is the name of the files, where [name] is the
// name of each entry point
output: {
path: path.join(__dirname, distFolder, 'js'),
filename: '[name].js',
publicPath: '/js'
},
// use full source maps
// this specific setting value is required to set breakpoints in they
// TypeScript source in the web browser for development other source map
devtool: 'source-map',
// use the webpack dev server to serve up the web application
devServer: {
// files are served from this folder
contentBase: 'dist',
// support HTML5 History API for react router
historyApiFallback: true,
// listen to port 5000, change this to another port if another server
// is already listening on this port
port: 5000,
// proxy requests to the JSON server REST service
proxy: {
'/widgets': {
// server to proxy
target: 'http://0.0.0.0:3010'
}
}
}
};
解決方法は?
原因はよくわからないのですが、私はこの方法で解決しています。
プロジェクト全体を再インストールします。ただし、webpack-dev-server がグローバルにインストールされている必要があることを忘れないでください。
webpackが見つからないというようなサーバーエラーを経験したので、linkコマンドでWebpackをリンクしました。
出力中 絶対パスの問題を解決しています。
devServerにて
object: inline: false
webpack.config.js
module.exports = {
entry: "./src/js/main.js",
output: {
path:__dirname+ '/dist/',
filename: "bundle.js",
publicPath: '/'
},
devServer: {
inline: false,
contentBase: "./dist",
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude:/(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react']
}
}
]
}
};
パッケージ.json
{
"name": "react-flux-architecture-es6",
"version": "1.0.0",
"description": "egghead",
"main": "index.js",
"scripts": {
"start": "webpack-dev-server"
},
"repository": {
"type": "git",
"url": "git+https://github.com/cichy/react-flux-architecture-es6.git"
},
"keywords": [
"React",
"flux"
],
"author": "Jarosław Cichoń",
"license": "ISC",
"bugs": {
"url": "https://github.com/cichy/react-flux-architecture-es6/issues"
},
"homepage": "https://github.com/cichy/react-flux-architecture-es6#readme",
"dependencies": {
"flux": "^3.1.2",
"react": "^15.4.2",
"react-dom": "^15.4.2",
"react-router": "^3.0.2"
},
"devDependencies": {
"babel-core": "^6.22.1",
"babel-loader": "^6.2.10",
"babel-preset-es2015": "^6.22.0",
"babel-preset-react": "^6.22.0"
}
}
関連
-
[解決済み] テスト
-
[解決済み] Jestの `beforeEach` グローバルは何のためにあるのですか?
-
[解決済み] Apolloクライアントでログアウトした後、ストアをリセットする
-
[解決済み] useStateプロパティのフックにmap関数を使用する方法
-
[解決済み] MUI Boxは何のためのコンポーネントですか?
-
[解決済み] Angular 2の*ngForのReactでの同等品
-
[解決済み] ReactjsのEsLintの "react / jsx-props-no-spreading "エラーを無効化する。
-
[解決済み] Reactのrender()にFont Awesomeのアイコンを入れる方法
-
[解決済み] webpackでjQueryプラグインの依存関係を管理する
-
[解決済み] Webpackでベンダースクリプトを個別にバンドルし、必要に応じて要求する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンポーネントの定義に表示名がない react/display-name
-
[解決済み】Warning.Itが表示されるのはなぜですか?Functions are not valid as a React child?
-
[解決済み】プリセットファイルはオブジェクトのエクスポートができない
-
[解決済み】React Propsが定義されていません。
-
[解決済み] FontAwesomeの無料パッケージに含まれているアイコンのオブジェクト名はどこにあるのですか?
-
[解決済み] react nativeで関数だらけのヘルパーファイルを作成する方法は?
-
[解決済み] React - 予想外のトークン、予想外の;
-
[解決済み] ReactJs "インバリアント違反..." リアクトの古典的な問題
-
React はエラー TypeError を報告します。未定義のプロパティ 'XX' を読み取ることができない、問題は解決されました。
-
[解決済み] componentDidUpdate'メソッドはいつ使用するのですか?