我正在尝试将捆绑分成两部分。例如,将一个包含所有依赖项的包移动到单独的包文件中。
要从主包中排除包,我将其声明为外部:
browserify({
entries: ['./src/index.js'],
extensions: ['.js'],
debug: true
})
.external(['PdfKit']) // Specify all vendors as external source
.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('dist/'));
问题是app.js包含了所有依赖项的PdfKit包的完整代码。
这里有完整的工作演示:https://github.com/motz-art/browserify-external-test
如何从app.js中删除一些包含所有依赖项的(但不是全部)包?
答案 0 :(得分:0)
package project;
import javafx.application.Application;
import javafx.concurrent.Task;
import javafx.concurrent.WorkerStateEvent;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.ProgressBar;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class Progress extends Application {
StackPane stack = new StackPane();
Scene scene = new Scene(stack, 400, 800);
// Progress Bar
ProgressBar progressBar = new ProgressBar();
public void start(Stage primaryStage) throws Exception {
// Progress Bar
stack.getChildren().add(progressBar);
progressBar.setTranslateX(0);
progressBar.setTranslateY(0);
progressBar.setProgress(0);
Task<Void> sleeper = new Task<Void>() {
@Override
protected Void call() throws Exception {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
return null;
}
};
sleeper.setOnSucceeded(new EventHandler<WorkerStateEvent>() {
@Override
public void handle(WorkerStateEvent event) {
progressBar.setProgress(0.1);
}
});
new Thread(sleeper).start();
primaryStage.setScene(scene);
primaryStage.setTitle("Title");
primaryStage.show();
}
public static void main(String[] args) {
launch();
}
}
方法具有案例意义。并且必须匹配external
中显示的包名称。
在我的情况下,require
被标记为外部,但index.js引用'PdfKit'
,因此过滤器返回'pdfKit'
,但是它自己的包被解析,因为窗口具有案例性。