首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我使用gulp时,我得到了一个奇怪的js输出?

当我使用gulp时,我得到了一个奇怪的js输出?
EN

Stack Overflow用户
提问于 2015-08-18 01:15:51
回答 2查看 56关注 0票数 1

我在reactjs和browserify中使用gulp

这是我的吞咽文件

代码语言:javascript
复制
var gulp = require('gulp'),
    browserify = require('browserify'),
    source = require('vinyl-source-stream'),
    reactify = require('reactify'),
    rename = require('gulp-rename')


gulp.task('js-build', function() {
      // converts jsx to js
    var b = browserify({
        entries: ['./lib/main.jsx'],
        transform: [reactify],
        extensions: ['.js','.jsx'],
        debug: false,
        cache: {},
        packageCache: {},
        fullPaths: false
    });

    function build(file) {
        return b
        .plugin('minifyify', {
            map: false
        })
        .bundle()
        .pipe(source('main.js'))
        .pipe(gulp.dest('./js/'));
    }
});

gulp.task('default', ['js-build']);

当我运行gulp将我的jsx转换成一个js文件时,我的js文件输出真的很长很复杂,并且具有超出我在jsx文件中指定的函数?例如,有一个名为cleanUpNextTick()的函数,我从未声明过它。

这是正常的吗?

这是我的package.json

代码语言:javascript
复制
"dependencies": {
    "browserify": "^11.0.1",
    "expect": "^1.9.0",
    "gulp": "^3.9.0",
    "gulp-concat": "^2.6.0",
    "gulp-react": "^3.0.1",
    "gulp-rename": "^1.2.2",
    "gulp-watch": "^4.3.4",
    "jest-cli": "^0.5.0",
    "jquery": "^2.1.4",
    "marked": "^0.3.5",
    "minifyify": "^7.0.5",
    "react": "^0.13.3",
    "react-tools": "^0.13.3",
    "reactify": "^1.1.1",
    "vinyl-source-stream": "^1.1.0"
  },
  "jest": {
    "moduleFileExtensions": [
      "jsx",
      "js"
    ],
    "scriptPreprocessor": "preprocessor.js",
    "unmockedModulePathPatterns": [
      "node_modules/react"
    ]
  },
  "devDependencies": {
    "jest-cli": "^0.4.19"
  }
EN

回答 2

Stack Overflow用户

发布于 2015-08-18 01:23:21

是的,这是正常的,你的代码被reactify转换成了Javascript ES5,它在幕后使用ReactTools.transform

该语言的新功能正在被ES5兼容的代码替换,并且可以在转换期间将新功能添加到最终代码中。

此外,browserify将您引用的所有依赖项与require (或ES6的import)捆绑在一起,因此您还会在最终捆绑包中看到第三方代码。

票数 2
EN

Stack Overflow用户

发布于 2015-08-18 01:25:33

是的,这绝对是正常的。捆绑包文件编译项目中的所有javascript,包括节点模块。这意味着您将能够看到所需的任何函数,如果可能来自所需的某个库,则可以使用cleanUpNextTick,例如react的CSSTransitionGroup

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32056151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档