我正在使用grunt来传输react文件,它使用grunt-babel和预设:"env“、"react”、plugins:“transform- as 2015-modules amd”,工作得很好。
我遇到的问题是,grunt-babel文件,这些文件放在同一个目录中,但我需要将JSX文件转到根文件夹directory.Below的一个级别,这是详细的解释:
文件夹结构:
ReactApp
- App // grunt-babel and relevant plug-ins, presets installed here
- config
- node_modules
- JSX // it's transpiling and working
- test.jsx
- JSX_generated
- test.js
- gruntfile
- package
- JSX // jsx file source and it's not transpiling
- test.jsx
- JSX_generated // transpiled jsx file output expected
- test.js
- App.js
- index.html gruntfile:
module.exports = function (grunt) {
'use strict';
grunt.initConfig({
babel: {
options: {
sourceMap: false,
presets: ["env", "react"],
plugins: ["transform-es2015-modules-amd"]
},
dist: {
files: [{
expand: true,
cwd: './JSX',
src: ['*.jsx'],
dest: './JSX_generated',
ext: '.js'
}]
}
}
});
grunt.loadNpmTasks('grunt-babel');
grunt.registerTask('default', ['babel']);};上面的grunt配置对放在App文件夹下的jsx文件夹来说很好,事情是我需要转移放在App文件夹之外的JSX文件夹。
将grunt配置cwd改为cwd:‘././JSX’, dest:././JSX_generated‘,
获取以下错误:运行"babel:jsx“(babel)任务警告:未知插件”transform- to 2015-modules amd“在"base”中指定为0,试图相对于"../JSX“进行解析
示例jsx文件:
import React from 'react';
import AppData from './AppData';
import Loader from './Loader';
class Test extends React.Component {
render() {
return <p>hello </p>
}
}
ReactDOM.render(<Test />, document.getElementById('container'));是否有一种方法可以将文件从咕噜或节点安装到一个级别?
发布于 2018-02-23 07:04:55
对于任何有类似问题的人,解决方案是使用
absolute paths
../Users/app/node_modules/babel-preset-es2015或使用要求如下:
var babelenv = require('babel-preset-env');
var babelreact = require('babel-preset-react');
var babelamd = require('babel-plugin-transform-es2015-modules-amd');和presets: [ babelenv, babelreact],plugins : [ babelamd ]
https://stackoverflow.com/questions/48484841
复制相似问题