J'essaie de faire un paquet avec webpack. J'ai une dépendance un peu complexe: certains composants en nécessitent d'autres, situés dans un dossier /home/.../
.
Composant (fichier /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"
}
};
Le problème est que le dossier far-away-components
ne contient pas node_modules
et j'obtiens une erreur: Couldn't find preset "react" relative to directory "/home/.../far-away-components"
.
Comment puis-je définir resolve
pour les préréglages babel-loader
?
Solution de github issue :
query: {
presets: [
'babel-preset-es2015',
'babel-preset-react',
'babel-preset-stage-0',
].map(require.resolve),
}
@ mqklin: Vous aviez besoin de cette solution de contournement en utilisant ".map (require.resolve)", car vous n'avez pas exclu/node_modules/dans vos chargeurs. Le format ci-dessous devrait fonctionner:
loaders: [
{
test: [/\.js$/, /\.es6$/],
exclude: /node_modules/,
loader: 'babel-loader',
query: {
cacheDirectory: true,
presets: ['react', 'es2015'],
}
}
]
Que diriez-vous de courir
npm init
dans le dossier /home/.../far-away-components, .__ puis utilisez npm pour installer ce dont vous avez besoin.