Ответ 1
Решение из проблемы github:
query: {
presets: [
'babel-preset-es2015',
'babel-preset-react',
'babel-preset-stage-0',
].map(require.resolve),
}
Я пытаюсь сделать пакет с webpack. У меня немного сложная зависимость: некоторые компоненты требуют других, которые находятся в некоторой папке /home/.../
.
Компонент (/home/.../far-away-components/base-component.js
файл):
import {base_component} from "base-component";
exports class MyComponent extends base_component {
...
}
webpack.config.js
:
var path = require("path");
module.exports = {
...
module: {
loaders: [
{
test: /\.(js)$/,
loader: "babel",
query: {
presets: ['react', 'es2015', "stage-0"]
}
}
]
},
resolve: {
alias: {
"base-component": "/home/.../far-away-components/base-component.js"
}
};
Проблема заключается в том, что папка far-away-components
не содержит node_modules
, и я получаю сообщение об ошибке: Couldn't find preset "react" relative to directory "/home/.../far-away-components"
.
Как установить resolve
для babel-loader
пресетов?
Решение из проблемы github:
query: {
presets: [
'babel-preset-es2015',
'babel-preset-react',
'babel-preset-stage-0',
].map(require.resolve),
}
@mqklin: вам понадобилась эта работа, используя ".map(require.resolve)", потому что вы не исключили/ node_modules/в своих загрузчиках. Должен работать следующий формат:
loaders: [
{
test: [/\.js$/, /\.es6$/],
exclude: /node_modules/,
loader: 'babel-loader',
query: {
cacheDirectory: true,
presets: ['react', 'es2015'],
}
}
]
Как пропустить
npm init
в папке /home/.../far-away-components, а затем используйте npm для установки того, что вам нужно.