Mat*_*ell 6 browserify gruntjs reactjs browserify-shim
使用最新节点和Grunt 0.4.x,反应0.10.x
什么通过Grunt在React JSX文件上执行browserify,这些文件需要jquery:
var $ = require('jquery');
Run Code Online (Sandbox Code Playgroud)
在阅读了类似的问题后,尝试将填充变换移动到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" ]
}
Run Code Online (Sandbox Code Playgroud)
无法通过浏览器来解析一个简单的JavaScript文件(只有"var $ = require('jquery');)来自 Grunt.Gruntfile.js具有:
browserify: {
options: {
debug: true
},
src: ['src/views/**/*.js'],
dest: 'build/javascript/client.js'
},
Run Code Online (Sandbox Code Playgroud)
运行Grunt会出现以下错误:
Error: module "jquery" not found from "D:\\development\\projects\\Prenotes\\src\\views\\dummy.js"
Run Code Online (Sandbox Code Playgroud)
如果我得到这个工作,那么我认为"reactify"可以添加到package.json中的转换数组中.
我将“reactify”放入package.json的转换段中,并将 Grunt browserify 重新设置为:
browserify: {
dist: {
files: {
'build/bundle.js' : ['src/views/**/*.jsx']
}
}
},
Run Code Online (Sandbox Code Playgroud)
如果没有“dist”,browserify 将无法正常运行。
这使得垫片可以工作,但reactify无法运行,所以我最终切换回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:$" ]
}
}
Run Code Online (Sandbox Code Playgroud)
在Gruntfile.js中:
browserify: {
options: {
debug: true,
transform: ['browserify-shim', require('grunt-react').browserify]
},
dist: {
files: {
'build/bundle.js' : ['src/views/**/*.jsx']
}
}
},
Run Code Online (Sandbox Code Playgroud)
这既填充又处理 JSX。最后。
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |