我想在我的Sails.js应用程序中集成React.js browserify.
为此,我使用咕噜插件grunt-react.
我创建了一个文件/tasks/config/browserify.js
module.exports = function(grunt) { grunt.config.set('browserify',{ //dev: { options: { transform: [ require('grunt-react').browserify ],extension: 'jsx' },app: { src: 'assets/jsx/app.jsx',dest: '.tmp/public/js/app.js' } //} }); grunt.loadNpmtasks('grunt-browserify'); };
然后我在compileAssets.js和syncAssets.js中添加了一行:
// compileAssets.js module.exports = function (grunt) { grunt.registerTask('compileAssets',[ 'clean:dev','stylus:dev','browserify',// <<< this added 'copy:dev' ]); };
和
// syncAssets.js module.exports = function (grunt) { grunt.registerTask('syncAssets',[ 'stylus:dev',// <<< this added 'sync:dev' ]); };
// copy.js module.exports = function(grunt) { grunt.config.set('copy',{ dev: { files: [{ expand: true,cwd: './assets',src: ['**/*.!(styl|jsx)'],/// <<< this modified dest: '.tmp/public' }] },build: { files: [{ expand: true,cwd: '.tmp/public',src: ['**/*'],dest: 'www' }] } }); grunt.loadNpmtasks('grunt-contrib-copy'); };
它工作!
但是我觉得我没有做到这一点.
如果我取消注释行dev:{和}在/tasks/config/browserify.js这样:
module.exports = function(grunt) { grunt.config.set('browserify',{ dev: { /// <<< this uncommented options: { transform: [ require('grunt-react').browserify ],dest: '.tmp/public/js/app.js' } } /// <<< this uncommented }); grunt.loadNpmtasks('grunt-browserify'); };
如果我在compileAssets.js和syncAssets.js中进行更改:
// compileAssets.js module.exports = function (grunt) { grunt.registerTask('compileAssets','browserify:dev',// <<< this added :dev 'copy:dev' ]); };
和
// syncAssets.js module.exports = function (grunt) { grunt.registerTask('syncAssets',// <<< this added :dev 'sync:dev' ]); };
这是行不通的!
值得担心吗?
为什么我在compileAssets.js和syncAssets.js文件中添加browserify:dev时不起作用?
解决方法
我找到了正确的解决方案.
UPD:现在我们可以使用https://github.com/erikschlegel/sails-generate-reactjs
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。