Ich baue eine App auf, die mehrere Einstiegspunkte hat. Es ist eine Plugin/Sideloading-React-Architektur.brunch.io conventions.ignored respektiert nicht node_modules
Ich habe eine Base-React-App kompiliert in app.js und vendor.js ganz gut. Das Problem entsteht, wenn das sekundäre Projekt, das Thema, mit einigen der gleichen Abhängigkeiten gebündelt wird. Vor allem reagieren und reagieren. Ich möchte in der Lage sein, conventions.igned zu verwenden, um Brunch anzuweisen, bestimmte node_modules und ihre Abhängigkeiten zu ignorieren. Unabhängig von der Regex, die ich in Conventions gesetzt habe. Ich werde immer noch reagieren und reagieren im theme_vendor.js Bundle. Siehe Konfiguration unten:
const {theme_name} = require('./package.json');
module.exports = {
sourceMaps: 'inline',
files: {
javascripts: {
joinTo: {
"theme.js": [
/^theme/,
],
"theme_vendor.js": [
/^(?!theme)/,
],
}
},
stylesheets: {
joinTo: {
'theme.css': ["theme/config/styles/index.scss"],
'theme_ie11.css': ["theme/config/styles/ie.scss"],
}
}
},
conventions: {
ignored: [
/\/_/,
"node_modules\/react",
"node_modules\/react-dom",
],
},
plugins: {
babel: {
presets: ['es2015', 'stage-0', 'react'],
plugins: [
['transform-runtime', {
polyfill: false,
regenerator: true
}]
],
},
sass: {
options: {
includePaths: [],
precision: 15
},
mode: 'native',
sourceMapEmbed: true,
debug: 'comments'
},
copycat: {
"fonts/slick-carousel": ["node_modules/slick-carousel/slick/fonts"],
"img/slick-carousel": ["node_modules/slick-carousel/slick/ajax-loader.gif"],
"": ["theme/theme_header.tmpl", "theme/theme_body.tmpl", "theme/theme_footer.tmpl"],
}
},
modules: {
nameCleaner: path => path.replace('', theme_name + '/')
},
notifications: false,
hot: false,
paths: {
public: '../',
watched: [
'theme',
'initialize.js',
]
},
overrides: {
production: {
optimize: true,
sourceMaps: false,
plugins: {
autoReload: {
enabled: false
}
},
paths: {
// public: "dist/"
}
}
}
};
Die einzige Möglichkeit, etwas in der Nähe zu erreichen, ist die Verwendung einer Negation in JoinTo. Siehe unten:
javascripts: {
joinTo: {
"theme.js": [
/^theme/,
],
"theme_vendor.js": [
/^(?!theme|node_modules\/react|node_modules\/react-dom)/,
],
}
},
Vielen Dank im Voraus für Ihre Hilfe. Weitere Informationen:
"dependencies": {
"react-click-outside": "^2.2.0",
"react-image-gallery": "^0.7.15",
"react-slick": "^0.14.7",
"slick-carousel": "^1.6.0"
},
"devDependencies": {
"auto-reload-brunch": "^2",
"babel-brunch": "~6.0.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.24.0",
"babel-preset-react": "~6.22",
"babel-preset-stage-0": "^6.22.0",
"brunch": "^2",
"clean-css-brunch": "^2",
"copycat-brunch": "^1.1.0",
"hmr-brunch": "^0.1",
"redux-devtools": "^3.3.2",
"redux-devtools-dock-monitor": "^1.1.1",
"redux-devtools-log-monitor": "^1.2.0",
"sass-brunch": "^2.10.4",
"uglify-js-brunch": "^2",
"isomorphic-fetch": "^2.2.1",
"react": "^15.4",
"react-addons-css-transition-group": "^15.4.2",
"react-dom": "^15.4",
"react-redux": "~4.3.0",
"react-router": "^3.0.2",
"react-router-redux": "^4.0.8",
"redux": "~3.2.1",
"redux-form": "^6.6.2",
"redux-logger": "^3.0.0",
"redux-saga": "^0.14.3"
}
danke für den Vorschlag. Das ist ein guter Workaround ... aber ich möchte nicht, dass die Dateien in das öffentliche Verzeichnis kopiert werden, ich möchte sie einfach ignorieren. – Menklab
Oh ja, meine Schuld. Mit diesem werden sie kopiert, wenn sie in der Liste sind, also wenn es eine Übereinstimmung ist. Vielleicht musst du eine RegEx erstellen, die sie ausschließt. –
Ich habe meine Antwort aktualisiert. Funktioniert es jetzt? –