grunt browserify反应需要jquery

使用最新的节点和Grunt 0.4.x,反应0.10.x

什么通过Grunt执行browserify对React JSX文件有jquery需要:

var $ = require('jquery');

在阅读了一个类似的问题之后,尝试将shim转换到package.json中 。 在我的package.json文件的底部有以下内容:

  "browser": {
    "jquery": "./bower_components/jquery/jquery.min.js",
    "bootstrap": "./bower_components/bootstrap/dist/js/bootstrap.min.js"
  },
  "browserify-shim": {
    "jquery": {
      "exports": "$"
    },
    "bootstrap": {
      "exports": "bootstrap",
      "depends": [ "jquery:$" ]
    }
  },
  "browserify": {
    "transform": [ "browserify-shim" ]
  }

无法通过简单的JavaScript文件(只有“var $ = require('jquery');)从Grunt获得它browserify来解析。Gruntfile.js有:

browserify: {
  options: {
    debug: true
  },

  src: ['src/views/**/*.js'],
  dest: 'build/javascript/client.js'
},

运行Grunt出现以下错误:

Error: module "jquery" not found from "D:developmentprojectsPrenotessrcviewsdummy.js"

如果当我得到这个工作,然后我认为可以将“reactify”添加到package.json中的transform数组中。


我在package.json的转换段中添加了“reactify”,并将Grunt的browserify重新命名为:

browserify: {
  dist: {
    files: {
      'build/bundle.js' : ['src/views/**/*.jsx']
     }
  }
},

没有“dist”浏览器将无法正常运行。

这使得垫片工作,但反应不会运行,所以我最终切换回grunt-react,并将转换逻辑拉回到Gruntfile.js中 (这感觉更好)。

所以在package.json结尾处有:

  "browser": {
    "jquery": "./lib/jquery/jquery.js",
    "bootstrap": "./lib/bootstrap/bootstrap.js"
  },
  "browserify-shim": {
    "jquery": {
      "exports": "$"
    },
    "bootstrap": {
      "exports": "bootstrap",
      "depends": [ "jquery:$" ]
    }
  }

并在Gruntfile.js中

browserify: {
  options: {
    debug: true,
    transform: ['browserify-shim', require('grunt-react').browserify]
  },
  dist: {
    files: {
      'build/bundle.js' : ['src/views/**/*.jsx']
    }
  }
},

这既是填充和处理JSX。 最后。

链接地址: http://www.djcxy.com/p/52099.html

上一篇: grunt browserify react requiring jquery

下一篇: React props: Using an HTML entity within JSX dynamic content?