У меня модульное приложение javascript, и мне нужно иметь js-фреймворки в одном файле «global-libs.js», зависимости которого будут доступны для каждого файла с помощью webpack. Другие файлы js будут использовать только эти зависимости, но это не будет частью окончательного пакета. Я использую Gulp для этой задачи в сочетании с Webpack.Внешняя зависимость Webpack
Это задача для WebPack и transpile моих JSX в JS, где должна быть только мой код, а не внешние библиотек
gulp.task('js',['jsx'], function() {
/**This dependency is external, its not part of the bundle */
return gulp.src(config.paths.workDir + config.paths.jsPath + '/**/*.js')
.pipe(webpack({
externals: {
"react": "React"
}
}))
.pipe(rename('onlyCustomJs.js'))
.pipe(gulpif(args.production, uglify()))
.pipe(gulp.dest(config.paths.portlets.newNotePortlet + config.paths.jsPath))
});
Этой задача должна создавать файлы только с внешними включениями библиотек и зависимости Реагировать должна быть доступны с использованием потребует каждый файл js webpack.
gulp.task('global', function(){
/**This will be accessible globally*/
return gulp.src(config.paths.srcDir + config.paths.jsPath + '/global-libs.js')
.pipe(webpack({
output: {
libraryTarget: "var",
library: "React"
}
}))
.pipe(rename('global-libs.js'))
.pipe(gulp.dest(config.paths.portlets.evremTheme + config.paths.jsPath))
});
Этот файл использует глобальную зависимость от зависимостей. Но он говорит мне, что React не определено в вар HelloMessage = Реагировать ..
/** @jsx React.DOM */
var React = require('react');
var HelloMessage = React.createClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
React.renderComponent(HelloMessage({name: "Hello world"}), document.getElementById('example'));
Это глобально-libs.js файл
var React = require('react');
var jQuery = require('jquery');
Спасибо!
Возможно, вы захотите заглянуть в реактор-загрузчик для webpack. Затем вы можете определить свои точки разделения в самом веб-пакете, просто используя стиль async AMD module define/require. –
Я нахожу пункт точки разделения в веб-пакете, но я не хочу компилировать все внешние библиотеки, которые я делаю в своем коде. Хотя я использую реактивный загрузчик, который более чист. Спасибо – Zdend
Если вы используете webpack-dev-сервер, он будет следить за изменениями. Вы даже можете использовать HotModuleReplacementPlugin для обновления своего приложения, не нажав кнопку обновления в браузере. См. Http://gaearon.github.io/react-hot-loader/2014/07/23/integrating-jsx-live-reload-into-your-react-workflow/ для действительно хорошей настройки. –