pycharm集成gulp自动编译reactjs

https://www.jetbrains.com/pycharm/help/using-grunt-task-runner.html

旧方法

  1.下载并安装nodejs   https://nodejs.org/en/

  2.安装react工具

npm install -g react-tools

  3.监视文件夹里面的js变动,如果变动将会自动重新编译jsx为js

jsx -w jsx js

     pycharm集成gulp自动编译reactjs_第1张图片

    这句命令被放在run_jsx.bat下面,并一直运行着, 当jsx文件夹下面的js有变动时, 将会自动编译到文件夹js下面


安装Gulp

   官方使用说明

     https://www.jetbrains.com/pycharm/help/using-gulp-task-runner.html

  1.安装nodejs插件

    打开 File | Settings, 按照下图操作安装插件, 

   pycharm集成gulp自动编译reactjs_第2张图片

    然后重启pycharm

    在设置目录下面你就可以看到nodejs包管理工具了

    pycharm集成gulp自动编译reactjs_第3张图片

  2.npm改为镜像源改为淘宝,加快npm包的安装速度

    修改或者新建文件 ~/.npmrc,文件内容改为下面的

    registry=https://registry.npm.taobao.org
    disturl=https://npm.taobao.org/dist

    然后调用

  npm update

   

监视工程里面的jsx文件

    我新建了一个只包含一个jsx目录的工程,  我希望当我修改jsx目录下面的test1.jsx时,gulp能帮我把编译后的js更新到js目录下面

    pycharm集成gulp自动编译reactjs_第4张图片

    

 1.初始化node环境并安装react,browserify和babel

   使用pycharm自带的终端工具,分别输入如下命令

npm init
npm install gulp vinyl-source-stream browserify --save-dev
npm install react react-dom babelify babel-preset-react --save-dev

    pycharm集成gulp自动编译reactjs_第5张图片

  

   安装完成后会生成一个package.json文件和node_module目录

    pycharm集成gulp自动编译reactjs_第6张图片

    package.json文件里面写明了我刚才用npm安装的包


 2.添加一个gulpfile.js,  配置gulp编译任务, 将test1.jsx编译为test1.js

    pycharm集成gulp自动编译reactjs_第7张图片

    gulpfile.js内容如下

var gulp = require('gulp');
var browserify = require('browserify');
var babelify = require('babelify');
var source = require('vinyl-source-stream');

//编译jsx任务
var buildJsx = function (src, dest) {
    browserify('static/jsx/'+src, {debug: true})
        .external('react')
        .external('react-dom')
        .transform(babelify, {presets: ["react"]})
        .bundle()
        .on("error", function (err) {
            console.log("Error : " + err.message);
        })
        .pipe(source(dest))
        .pipe(gulp.dest('static/js/'));
};

gulp.task('test1', buildJsx.bind(this, 'test1.jsx', 'test1.js'));

gulp.task('browserify:watch', function () {
    gulp.watch('./static/jsx/test1.jsx', ['test1']);
});

gulp.task('default', ['build-all', 'browserify:watch']);

gulp.task('build-all', [
    'test1',
]);

    右键执行default ,启动编译任务

    

   

 3.将browserify:watch 直接设置为随工程启动,方便一直监视文件变动

    File->Setting->Tools->Startup Tasks  选择gulp.js 然后选择default并apply

     pycharm集成gulp自动编译reactjs_第8张图片

    pycharm集成gulp自动编译reactjs_第9张图片

    然后当pycharm打开这个工程时会自动启动这个任务去监视需要进行编译的jsx文件

     pycharm集成gulp自动编译reactjs_第10张图片





你可能感兴趣的:(reactjs)