【问题标题】:Created multiple bundles with one command using npm and Browserify使用 npm 和 Browserify 用一个命令创建多个包
【发布时间】:2018-05-04 09:48:57
【问题描述】:

我正在尝试使用单个构建命令制作两个 bundle.js 文件,一个用于 iOS,一个用于 Android。我想在捆绑包中包含第二个应用程序,但作为别名导入并让 Browserify 确定来源。我不想修改 App.js,但我想我可以为 appOne 导入别名,它会导入空白字符串或应用程序。

这是我目前拥有的所有东西:

Package.json

...

 "scripts": {
    "build-dev": "NODE_ENV=production browserify appone-ios.js app.js > public/js/bundle-ios.js && cp public/js/bundle-ios.js public/js/bundle-ios.min.js | NODE_ENV=production browserify appone-andoird.js app.js > public/js/bundle-android.js && cp public/js/bundle-android.js public/js/bundle-android.min.js",
  },

...

Appone-ios.js

// default placeholder for import.
var appOne = '';
export default appOne;

Appone-android.js

// app for import.
var appOne = require('path/to/app/one');
export default appOne;

App.js

// Always import AppOne either a blank string or app so that app.js doesnt change.
var appOne = import('appOne');

【问题讨论】:

    标签: npm browserify


    【解决方案1】:

    我最终不得不使用 Gulp。除了“手表”不起作用之外,这是完整的。

    var gulp = require('gulp');
    var streamify = require('gulp-streamify');
    var uglify = require('gulp-uglify');
    var transform = require('vinyl-source-stream');
    var browserify = require('browserify');
    var rename = require('gulp-rename');
    var nodemon = require('gulp-nodemon');
    
    var ios = browserify({
       entries:['app.js']
     });
    
    var android = browserify({
      entries:['app.js']
    });
    
    const bundle = () => {
    
      process.env.NODE_ENV = 'production';
    
      const bundleIOS = () => {
        ios.require('./app-ios.js', {expose:'app_alias'})
          .bundle()
          .pipe(transform('bundle-ios.js'))
          .pipe(gulp.dest('./public/js'))
          .pipe(streamify(uglify()))
          .pipe(rename('bundle-ios.min.js'))
          .pipe(gulp.dest('./public/js'));
          return ios;
      }
    
      const bundleAndroid = () => {
        android.require('./app-android.js', {expose:'app_alias'})
          .bundle()
          .pipe(transform('bundle-android.js'))
          .pipe(gulp.dest('./public/js'))
          .pipe(streamify(uglify()))
          .pipe(rename('bundle-android.min.js'))
          .pipe(gulp.dest('./public/js'));
          return android;
      }
    
      return bundleIOS() && bundleAndroid();
    
    }
    
    const start = () => {
      return nodemon({
        script: 'server.js',
        watch: ['server.js', 'public/js/*', 'public/index.html', 'public/css/*'],
        ext: 'js html css',
        env: { 'NODE_ENV': 'development' },
      });
    }
    
    // Start local server and watch bundles.
    gulp.task('start', start);
    
    // Build minified versions for prod.
    gulp.task('deploy', bundle);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 2019-02-26
      • 2014-07-13
      相关资源
      最近更新 更多