Добрый вечер, ребята, у меня проблема.Я работаю над реагирующим проектом и после внесения некоторых изменений в код я хотел развернуть его в стадии подготовки.Я выполнил команду
gulp deploy --scripts --styles --staging
После этого он завершается ошибкой, когда достигает кармы, и возвращает мне эту ошибку:
22 10 2018 19: 39: 11.114: ОШИБКА [препроцесс]: не удается загрузить «веб-пакет»!WebpackOptionsValidationError: Неверный объект конфигурации.Webpack был инициализирован с использованием объекта конфигурации, который не соответствует схеме API.- configuration.entry должен быть одним из следующих: object {: непустая строка |[непустая строка]} |непустая строка |[непустая строка] |функция Точка входа в компиляцию.Подробности: * configuration.entry НЕ должен иметь менее 1 свойства ({"keyword": "minProperties", "dataPath": ".entry", "schemaPath": "# / oneOf / 0 / minProperties", "params":{"limit": 1}, "message": "НЕ ДОЛЖНО иметь менее 1 свойства", "schema": 1, "parentSchema": {"minProperties": 1, "AdditionalProperties": {"oneOf": [{"description": "Строка преобразуется в модуль, который загружается при запуске.", "minLength": 1, "type": "string"}, {"description": "Все модули загружаются при запуске. Последнийодин экспортируется. "," $ ref ":" # / definitions / common.nonEmptyArrayOfUniqueStringValues "}]}," description ":" Создано несколько входных пакетов. Ключом является имя чанка. Значением может быть строка илимассив. "," тип ":" объект "}," данные ": {}}).объект {: непустая строка |[непустая строка]} Создается несколько входных пакетов.Ключ - это имя чанка.Значение может быть строкой или массивом.* configuration.entry должен быть строкой.* configuration.entry должен быть массивом: [непустая строка] * configuration.entry должен быть экземпляром функции, возвращающей объект ввода или обещание.
Я никогда не работал с Кармойдо этого момента, и я действительно не уверен, что делать здесь или в чем может быть проблема.
Моя версия веб-пакета - 2.15.5, npm - 2.15.5, карма 2.15.5 и узел v4.4.6..
Это karma.conf.js
'use strict';
const path = require('path');
const pathTo = path.join.bind(null, process.cwd());
module.exports = function(config) {
config.set({
// base path is app/ so node_modules/ don't get included
basePath: pathTo('app'),
files: [
//'**/__tests__/**/*.js'
'tests/tests.webpack.js'
],
frameworks: ['mocha', 'sinon-chai', 'chai-jquery', 'chai', 'jquery-2.1.0'],
browsers: ['PhantomJS'], // or open localhost:9876 in any browser installed
reporters: ['mocha'],
mochaReporter: {
output: 'autowatch' // 'autowatch' or 'minimal'
},
preprocessors: {
//'**/__tests__/**/*.js': ['webpack']
'tests/tests.webpack.js': ['webpack']
},
webpack: {
module: {
loaders: [{
test: /\.js$/,
loader: 'babel',
include: [
path.join(__dirname, 'app', 'react'),
path.join(__dirname, 'app', 'tests'),
path.join(__dirname, 'app', 'scripts', '__tests__')
],
query: {
presets: ['es2015', 'react'],
compact: true
}
}]
}
},
webpackServer: {
noInfo: true
}
});
};
А это мой webpack.config.js
'use strict';
const webpack = require('webpack');
const StaticSiteGeneratorPlugin = require('static-site-generator-webpack-plugin');
const path = require('path');
//const config = require('./config');
const data = require('./app/react/data');
const yargs = require('yargs');
const arg = yargs.argv;
const config = {
production: arg.prod,
development: arg.dev || (!arg.prod && !arg.pages),
pages: arg.pages,
watch: arg.watch
};
// Add Node env. variables to data object so they can be passed and accessed in React.
const dataConfig = Object.assign({}, data, {
dev: config.development,
prod: config.production,
pages: config.pages,
watch: config.watch
});
function getValues(obj) {
const allPaths = [];
Object.keys(obj).forEach(key => allPaths.push(obj[key]));
return allPaths;
}
/**
* If --pages flag is passed, webpack will load and generate content pages only and ignore
* --prod and --dev flags. Else, it will choose dev or prod settings accordingly
*/
const routes = config.pages ? getValues(data.staticPaths) :
(config.development ? getValues({ INDEX: '/' }) : getValues(data.prodPaths));
let htmlDir = 'build';
if (arg.pages) {
htmlDir = 'dist/pages';
} else if (arg.prod) {
htmlDir = 'dist/templates';
}
module.exports = {
entry: {
main: path.join(__dirname, 'app', 'react', 'Router.js'),
dev: path.join(__dirname, 'app', 'react', 'devApp.js')
},
output: {
filename: '[name].bundle.js',
path: path.join(__dirname, htmlDir),
libraryTarget: 'umd',
publicPath: '/'
},
// rebuild on change
watch: false,
// true by default with watch: true
cache: true,
// source map makes sense only when bundle.js is used on page,
// we don't need it for generating html
devtool: '#source-map',
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
include: [
path.join(__dirname, 'app', 'react'),
path.join(__dirname, 'app', 'data')
],
query: {
presets: ['es2015', 'react'],
compact: true
}
},
{
test: /\.md$/,
loader: 'html!markdown?gfm=false',
include: [
path.join(__dirname, 'app', 'data')
]
},
{
test: /\.json$/,
loader: 'json',
include: [
path.join(__dirname, 'app', 'react'),
path.join(__dirname, 'app', 'data')
]
}
]
},
plugins: [
new StaticSiteGeneratorPlugin('main', routes, dataConfig),
new webpack.DefinePlugin({
'process.env': {
'MOCK': arg.mock
}
})
]
};
Я надеюсь, что кто-то может мне помочь в этом.