Webpack config при разработке расширений Chrome
Имеется код с примера работы с Storage (API Chrome extension) - background.js
const storageCache = {};
// Asynchronously retrieve data from storage.sync, then cache it.
const initStorageCache = getAllStorageSyncData().then(items => {
// Copy the data retrieved from storage into storageCache.
Object.assign(storageCache, items);
});
chrome.action.onClicked.addListener(async (tab) => {
try {
await initStorageCache;
} catch (e) {
// Handle error that occurred during storage initialization.
}
// Normal action handler logic.
});
// Reads all data out of storage.sync and exposes it via a promise.
//
// Note: Once the Storage API gains promise support, this function
// can be greatly simplified.
function getAllStorageSyncData() {
// Immediately return a promise and start asynchronous work
return new Promise((resolve, reject) => {
// Asynchronously fetch all data from storage.sync.
chrome.storage.sync.get(null, (items) => {
// Pass any observed errors down the promise chain.
if (chrome.runtime.lastError) {
return reject(chrome.runtime.lastError);
}
// Pass the data retrieved from storage down the promise chain.
resolve(items);
});
});
}
Конфиг webpack ( "babel-core": "^6.17.0", "babel-loader": "^6.2.5", "babel-preset-es2015": "^6.16.0" )
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['es2015']
}
}
]
}
При сборке выкидывает ошибку
ERROR in ./src/js/background.js
Module parse failed: D:\chrome_ext\storage_test\node_modules\babel-loader\lib\index.js?{"presets":["es2015"]}!D:\chrome_ext\storage_test\src\js\background.js Unexpected token (28:42
)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (28:42)
at Parser.pp$4.raise (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:2221:15)
at Parser.pp.unexpected (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:603:10)
at Parser.pp.expect (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:597:28)
at Parser.pp$3.parseExprList (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:2152:16)
at Parser.pp$3.parseSubscripts (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1741:35)
at Parser.pp$3.parseExprSubscripts (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1718:17)
at Parser.pp$3.parseMaybeUnary (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1692:19)
at Parser.pp$3.parseExprOps (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1637:21)
at Parser.pp$3.parseMaybeConditional (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1620:21)
at Parser.pp$3.parseMaybeAssign (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1597:21)
at Parser.pp$3.parseExpression (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:1573:21)
at Parser.pp$1.parseStatement (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:727:47)
at Parser.pp$1.parseTopLevel (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:638:25)
at Parser.parse (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:516:17)
at Object.parse (D:\chrome_ext\storage_test\node_modules\acorn\dist\acorn.js:3098:39)
at Parser.parse (D:\chrome_ext\storage_test\node_modules\webpack\lib\Parser.js:902:15)
at NormalModule.<anonymous> (D:\chrome_ext\storage_test\node_modules\webpack\lib\NormalModule.js:104:16)
at NormalModule.onModuleBuild (D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
at nextLoader (D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
at D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:292:15
at Object.context.callback (D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:148:14)
at Object.module.exports (D:\chrome_ext\storage_test\node_modules\babel-loader\lib\index.js:172:8)
at WEBPACK_CORE_LOADER_EXECUTION (D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:155:71)
at runSyncOrAsync (D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:155:93)
at nextLoader (D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:290:3)
at D:\chrome_ext\storage_test\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
at Storage.finished (D:\chrome_ext\storage_test\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
at D:\chrome_ext\storage_test\node_modules\graceful-fs\graceful-fs.js:123:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:511:3)
В чем может быть проблема