javascript - 对从外部 javascript 引用的 ES6 代码使用 gulp+browserify+babalify。
问题描述
我一直在使用 es6 类、导入和导出为我们的主项目做一个辅助项目。主要代码使用Angular 1(即AngularJS)
我已经在此处和其他地方遵循了有关使用 browsify 和 babelify 的建议,并且几乎可以使其正常工作,但我仍坚持我希望是最后一步。我无法从主代码中引用我的库。
我们使用 gulp,所以我需要将它融入该框架。我想出了以下内容来创建库:
function cliCompile() {
console.log('Compiling client-server...');
return browserify({
entries: 'cli/main.js',
debug: true,
require: './cli/main.js',
transform: [babelify]})
.bundle()
.pipe(source('cli.js'))
.pipe(gulp.dest('./app/compiled'));
}
由此生成的要求对于我的计算机是唯一的(完整路径),因此我显然需要使用别名。但是,别名似乎不适用于上述情况,或者我不知道正确的格式。将请求行更改为
require: 'cli/main.js:CSMain"
不起作用,因为它将引用的完整字符串视为文件名/模块。
有没有办法重写它,这样它就可以工作并且有一个我可以在主要角度代码中引用的别名?请注意,引用我上面给出的函数的行是:
gulp.task('cli', cliCompile);
解决方案
别名确实可以解决这个问题。但是,当您将 require 作为初始参数的一部分传入时,您似乎无法指定 require 选项。
而是调用 .require 如下:
gulp.task('cli', cliCompile);
....
function cliCompile() {
console.log('Compiling client-server...');
var b = browserify({
entries: 'cli/main.js',
debug: true,
transform: [babelify]});
b.require('./cli/main.js', {expose: 'cli'});
return b.bundle()
.pipe(source('cli.js'))
.pipe(gulp.dest('./app/compiled'));
}
也可以将要求放在列表中:
return browserify({
entries: 'cli/main.js',
debug: true,
transform: [babelify]})
.require('./cli/main.js', {expose: 'cli'})
.bundle()
.pipe(source('cli.js'))
.pipe(gulp.dest('./app/compiled'));
推荐阅读
- django - 如何在 django orm 上制作多重过滤器?
- kotlin - 如何获取 javax.lang.model.element.Element 实例的类型
- php - 以折线图显示 MySQL 数据库中的数据
- azure - Azure 存储 Blob 未在 Google 中编制索引
- powershell - 值不在预期范围内创建 powershell 作业
- python - 如何将数据保存到下一列
- python - Python,导入熊猫时没有“isclass”的AttributeError
- vue.js - 什么时候在 vue 中使用 created() 方法?
- android - Android Studio 未解决的参考。项目编译
- java - 如何使用 Jython 将 .pyc 文件反编译为 .py