umijs / babel-plugin-import Goto Github PK
View Code? Open in Web Editor NEWModularly import plugin for babel.
Modularly import plugin for babel.
配置如下,为什么出错呢:
.babelrc文件内容:
{
"stage": 2,
"env": {
"development": {
"plugins": [
"react-transform",
["antd",{"style":"css"}]
],
"extra": {
"react-transform": {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}]
}
}
}
}
}
Hi,
So I'm trying to use antd with this babel plugin but anytime I import a module it gives me the following error:
e.g: Import { Input } from 'antd';
and in render()
:
<Input addonBefore="Http://" addonAfter=".com" defaultValue="mysite" />
gives the following error:
Cannot read property '0' of null
I'm using .babelrc
. Importing only javascript
works however when I pass in the value for style it gives the above error again.
_renderALert () {
const message = (
<div>
<p>test</p>
</div>
)
return <Alert message={message} type='info' />
}
invariant.js:38 Uncaught (in promise) Error: Objects are not valid as a React child (found: object with keys {info, success, error, warn, warning, loading, config, destroy}). If you meant to render a collection of children, use an array instead or wrap the object using createFragment(object) from the React add-ons. Check the render method of `Alert`
但是如果写成inline的是没问题的。。
浏览器控制台提示'you are using prebuild antd,
please use https://github.com/ant-design/babel-plugin-antd to reduce app bundle size.',
需要怎么使用这个插件消除这个提示呢?麻烦提供一下具体点的配置教程!
我的 antd 是按需加载的
import { Table } from 'antd';
请问如何配置 webpack.config 的 extract-text-webpack-plugin
可以导出单个 css 文件?
我用了 babel-plugin-antd
"plugins": [
["antd", [{
"libraryName": "antd",
"style": "css"
}]]
]
配置内容:
{
"stage": 0,
"env": {
"development": {
"plugins": ["react-transform", "antd"],
"extra": {
"react-transform": {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}, {
"transform": "react-transform-catch-errors",
"imports": ["react", "redbox-react"]
}]
}
}
}
}
}
错误信息:
Module build failed: TypeError: The plugin "antd" didn't export a Plugin instance
请问哪里配置错误了?应该怎么配置,是否有例子?
{
"presets": [
"react"
],
"plugins": [
[
{
"libraryName": "antd",
"libraryDirectory": "lib", // default: lib
"style": true
},
{
"libraryName": "antd-mobile",
"libraryDirectory": "component"
}
],
[
"transform-runtime",
{
"polyfill": false,
"regenerator": true
}
]
]
}
package.json:
...
"dependencies": {
"antd": "^1.0.1",
"clean-tagged-string": "0.0.1-b6",
"immutable": "^3.7.5",
"react": "^15.0.1",
"react-color": "^2.0.0",
"react-dom": "^15.0.1",
"react-redux": "^4.4.5",
"redux": "^3.4.0",
"redux-actions": "^0.9.1",
"redux-logger": "^2.6.1",
"redux-promise": "^0.5.3",
"redux-thunk": "^2.0.1",
"babel-plugin-antd": "^0.4.0",
"toastr": "^2.1.2"
},
"devDependencies": {
"babel-core": "^6.7.4",
"babel-loader": "^6.2.4",
"babel-polyfill": "^6.7.2",
"babel-preset-es2015": "^6.6.0",
"babel-preset-react": "^6.5.0",
"classnames": "^2.2.1",
"css-loader": "^0.23.0",
"file-loader": "^0.8.4",
"html-loader": "^0.3.0",
"img-loader": "^1.2.0",
"immutable-devtools": "0.0.5",
"less": "^2.7.1",
"less-loader": "^2.2.3",
"node-sass": "^3.4.2",
"sass-loader": "^3.1.1",
"style-loader": "^0.13.0",
"to-string-loader": "^1.1.3",
"url-loader": "^0.5.6",
"webpack": "^1.12.14"
},
...
webpack.config.js:
var webpack = require('webpack');
module.exports = {
// 插件项
// plugins: [commonsPlugin],
entry: {
main: './src/js/main.js',
vendor: [
'react',
'react-dom',
'react-redux',
'redux',
'redux-thunk',
'redux-actions',
'redux-logger',
'redux-promise',
'immutable',
'antd',
'classnames',
'toastr',
'babel-polyfill',
'clean-tagged-string',
], // 第三方库
},
output: {
path: 'd:/cengrp/webapps/pmi/cendo', // 输出目录
filename: '[name].bundle.js',
chunkFilename: '[name].chunk.js',
},
// 加载器配置
module: {
loaders: [
// .css 文件使用 style-loader 和 css-loader 来处理
{ test: /.css$/, loader: 'style-loader!css-loader' },
{ test: /.less$/, loader: 'style!css!less' },
// .scss 文件使用 style-loader、css-loader 和 sass-loader 来编译处理
{ test: /.scss$/, loader: 'style!css!sass?sourceMap'},
// 图片文件使用 url-loader 来处理,小于2kb的直接转为base64
{ test: /.(png)$/, loader: 'url?name=./image/img-[hash].[ext]&limit=256!img?progressive=true'},
{ test: /.(jpg)$/, loader: 'url?name=./image/img-[hash].[ext]&limit=256!img?progressive=true'},
{ test: /.(cur)$/, loader: 'url?name=./image/img-[hash].[ext]&limit=256' },
{
test: /.js?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
//query: {
// presets: ['es2015', 'react',],
//},
},
{ test: /.html$/, loader: 'html' },
],
},
plugins: [
// 定义公共的第三方库
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
filename: 'vendor.bundle.js',
}),
new webpack.NoErrorsPlugin(),
new webpack.optimize.OccurrenceOrderPlugin(),
],
externals: {
// 外部声明模块,由页面自己负责模块变量的引入
jquery: 'jQuery',
toastr: 'toastr', // bootstrap toastr:Simple javascript toast notifications
},
stats: {
// Nice colored output
colors: true,
},
// Create Sourcemaps for the bundle
// devtool: 'source-map',
// npm install webpack babel-core babel-loader
// babel-preset-es2015 babel-preset-react babel-polyfill --save-dev
};
.babelrc:
{
"plugins": [["antd", {"style" : "css"}]],
"presets": ['es2015', 'react',]
}
demo.js中的引用写法:
import { Button} from 'antd';
...
...
页面依然报告:
you are using prebuild antd,
please use https://github.com/ant-design/babel-plugin-antd to reduce app bundle size.
请求帮助!!!
nodejs版本:4.2.2
npm版本:3.8.6
antd版本:1.1.0
babel-plugin-antd版本:0.4.0
当 style 设为 true 时,这段代码会导致此插件失效:https://github.com/ant-design/antd-init/blob/1.1.0/boilerplates/plain-react/webpack.config.js#L21-L29
设为 'css' 时没有问题。
same problem: ant-design/ant-design#193 (comment)
"babel-plugin-antd": "^0.5.1",
"antd-mobile": "^0.7.8",
npm -v
3.8.9
node -v
v6.2.0
//.babelrc
['antd', [
{ libraryName: "antd", libraryDirectory: "lib", style: true,},
{ libraryName: "antd-mobile",libraryDirectory: "component",},
]],
没应用到样式,也没加载进来
import { Button } from 'antd-mobile';
就没报错了,可是样式还是没有加载进来
如果使用css的话应该怎么配置.babelrc?
"plugins": [["antd", {"style":'css'}]],
template_of_912_referencing_39:13 Uncaught ReferenceError: __webpack_module_template_argument_1____webpack_module_template_argument_2__ is not defined
正在做一个动态路由项目,需要打包成多个js文件。
问题来了
使用.babelrc
{
"presets":[ "es2015", "react" ],
"plugins":[ "transform-runtime", "antd"]
}
运行时页面没有生成<style>...</style>
使用.babelrc
{
"presets":[ "es2015", "react" ],
"plugins":[ "transform-runtime", ["antd", { "style": "css" }]]
}
体积比第一种生成的js还大,运行时同样没有生成<style>...</style>
。
使用 extract-text-webpack-plugin
也无法分离出css,也许是哪里配置错误。最后将antd发布的prebuilt的css放到项目里,项目才跑起来。
使用 atool-build,使用其内置的webpack.config.js,结果跟第一种情况一样;仿照antd-init中定制的webpack.config.js(即
webpackConfig.babel.plugins.push(['antd', { style: 'css' }]);
可以分离出css,项目能够运行。
import {Button} from 'antd'
直接引用错误,提示:
ERROR in ./app/components/App.jsx
Module not found: Error: Cannot resolve module 'antd/component/button/style' in /Users/xxxx/Documents/cms/app/components
@ ./app/components/App.jsx 7:13-51
ERROR in ./app/components/App.jsx
Module not found: Error: Cannot resolve module 'antd/component/button' in /Users/xxxx/Documents/cms/app/components
@ ./app/components/App.jsx 9:14-46
用了webpack 配置alias,不知道跟这个有没有关……
const Icon = require('antd');
支持这种写法自动按需加载吗
Hello.
I have configured the plugin by .babelrc (["antd", { style: "css" }]
) and use es6 destructuring imports.
The problem is however, that those imports are not replaced but merely removed (resulting build has all other imports, but those from antd package.
Have you encoutered this problem?
I was not able pinpoint anything that should do this in my webpack config.
好像是把 alias 当成包名处理了?
Cannot resolve module 'antd/lib/antd-select'
/Users/ball/site-home/hipack/node_modules/babel-core/lib/transformation/file/plugin-manager.js:164
throw new TypeError(messages.get("pluginNotTransformer", name));
^
TypeError: The plugin "antd" didn't export a Plugin instance
at PluginManager.validate (/Users/ball/site-home/hipack/node_modules/babel-core/lib/transformation/file/plugin-manager.js:164:13)
at PluginManager.add (/Users/ball/site-home/hipack/node_modules/babel-core/lib/transformation/file/plugin-manager.js:213:10)
at File.buildTransformers (/Users/ball/site-home/hipack/node_modules/babel-core/lib/transformation/file/index.js:237:21)
at new File (/Users/ball/site-home/hipack/node_modules/babel-core/lib/transformation/file/index.js:139:10)
at Pipeline.transform (/Users/ball/site-home/hipack/node_modules/babel-core/lib/transformation/pipeline.js:164:16)
at Object.transformFileSync (/Users/ball/site-home/hipack/node_modules/babel-core/lib/api/node.js:137:37)
at compile (/Users/ball/site-home/hipack/node_modules/babel-core/lib/api/register/node.js:132:20)
at normalLoader (/Users/ball/site-home/hipack/node_modules/babel-core/lib/api/register/node.js:199:14)
at Object.require.extensions.(anonymous function) [as .js] (/Users/ball/site-home/hipack/node_modules/babel-core/lib/api/register/node.js:216:7)
at Module.load (module.js:357:32)
请问这是什么原因造成的呢?
这是我的依赖包
"dependencies": {
"assets-webpack-plugin": "^3.2.0",
"autoprefixer": "^6.1.2",
"babel": "^5.8.34",
"babel-eslint": "^4.1.6",
"babel-loader": "^5.4.0",
"babel-plugin-antd": "^0.3.2",
"babel-plugin-react-transform": "^1.1.1",
"browser-sync": "^2.10.1",
"colors": "^1.1.2",
"commander": "^2.9.0",
"css-loader": "^0.23.0",
"csscomb": "^3.1.8",
"del": "^2.2.0",
"eslint": "^1.10.3",
"eslint-config-airbnb": "^2.1.1",
"eslint-loader": "^1.1.1",
"eslint-plugin-react": "^3.11.3",
"extract-text-webpack-plugin": "^1.0.1",
"file-loader": "^0.8.5",
"gaze": "^0.5.2",
"git-repository": "^0.1.1",
"glob": "^6.0.1",
"html-webpack-plugin": "^2.9.0",
"isomorphic-style-loader": "0.0.5",
"jest-cli": "^0.8.2",
"jscs": "^2.7.0",
"json-loader": "^0.5.4",
"lodash.merge": "^3.3.2",
"mkdirp": "^0.5.1",
"ncp": "^2.0.0",
"postcss": "^5.0.13",
"postcss-import": "^7.1.3",
"postcss-loader": "^0.8.0",
"precss": "^1.3.0",
"progress-stream": "^1.2.0",
"raw-loader": "^0.5.1",
"react-transform-catch-errors": "^1.0.0",
"react-transform-hmr": "^1.0.1",
"redbox-react": "^1.2.0",
"replace": "^0.3.0",
"request": "^2.69.0",
"unzip": "^0.1.11",
"url-loader": "^0.5.7",
"webpack": "^1.12.9",
"webpack-hot-middleware": "^2.6.0",
"webpack-middleware": "^1.4.0"
}
希望文档明确写出:支持的最低 babel 版本,需要哪些 babel-xxx 的依赖等,最好做个 webpack + babel 的 example 出来。
就像下边这样跑不起来:
...
"babel": {
"plugins": [["babel-plugin-antd", { "style": "css", "libraryName": "antd-mobile" }]]
},
"dependencies": {
"babel": "^5.4.7",
"babel-core": "^5.4.7",
"babel-eslint": "^3.1.23",
"babel-loader": "^5.0.0",
"babel-plugin-antd": "~0.4.1",
"bundle-loader": "^0.5.2",
...
报错:
ERROR in ./src/form/index.js
Module build failed: TypeError: The plugin ["babel-plugin-antd",{"style":"css","libraryName":"antd-mobile"}] didn't export a Plugin instance
Just a question.
Since webpack 2.0 will support tree-shaking: http://www.2ality.com/2015/12/webpack-tree-shaking.html
In my mind it will provide the same result with this plugin.
var path = require('path');
var webpack = require('webpack');
// 扩展插件
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var CommonsChunkPlugin = webpack.optimize.CommonsChunkPlugin;
var HtmlWebpackPlugin = require('html-webpack-plugin');
// 全局引用框架
var node_modules = path.resolve(__dirname, 'node_modules');
var pathToReact = path.resolve(node_modules, 'react/dist/react.min.js');
var pathToJquery = path.resolve(node_modules, 'jquery/dist/jquery.min.js');
var pathToReactDom = path.resolve(node_modules, 'react-dom/dist/react-dom.min.js');
var pathToAntd = path.resolve(node_modules, 'antd');
// 引入入口数据
var entryData = require('./entryData');
var htmlEntryData = require('./htmlEntryData');
config = {
entry: entryData,
cache: true,
devtool: false,
output: {
//文件输出目录
path: path.resolve(__dirname, 'build/js'),
//根据入口文件输出的对应多个文件名
filename: '[name].js',
chunkFilename: '[name].chunk.js',
//用于配置文件发布路径,如CDN或本地服务器
publicPath: '/'
},
resolve: {
//配置别名,在项目中可缩减引用路径
alias: {
'react': pathToReact,
'react-dom': pathToReactDom,
// 'jquery': pathToJquery,
// 'antd': pathToAntd,
},
extensions: ['', '.js', '.jsx'],
unsafeCache: true
},
module: {
//各种加载器,即让各种文件格式可用require引用
loaders: [{
test: /\.js[x]?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
cacheDirectory: true,
presets: ['react', 'es2015'],
'plugins': [
['antd', {
style: 'css'
}]
]
},
// include: path.resolve(__dirname, '.')
},
},
{
test: /\.json$/,
exclude: /node_modules/,
loader: 'json-loader'
},
{
test: /\.css$/,
loader: ExtractTextPlugin.extract('style-loader', 'css-loader')
},
{
test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
loader: 'file-loader?name=css/[name].[ext]'
},
{ //配置图片打包途径
test: /\.(jpe?g|png|gif|svg)$/i,
loader: 'file-loader?name=../images/[name].[ext]'
},
{
test: /\/images\/$/,
loader: 'file-loader?name=../images'
}
],
noParse: [pathToReact]
}
报错内容:
ERROR in ./~/react-slick/lib/mixins/helpers.js
Module not found: Error: Cannot resolve 'file' or 'directory' /Users/yfq/GitProject/wsh-web/node_modules/react/dist/react.min.js/lib/ReactTransitionEvents in /Users/yfq/GitProject/wsh-web/node_modules/react-slick/lib/mixins
@ ./~/react-slick/lib/mixins/helpers.js 17:37-79
查看后,初估是antd中引react不能识别路径,具体配置没有错吧?
import {Select} from 'antd';
console.log(Select);
undefined
Hi, I am trying to use great react UI library ant-design with meteor https://www.meteor.com/
It works ok via npm install.
But when I want to load components modularly with babel-plugin-antd via .babelrc file I have problems.
With this .babelrc it loads antd components modulalry ok but without styling:
{
"plugins": [
["antd"]
]
}
But with this .babelrc (which should load also css/less modulalry) I got errors:
{
"plugins": [
["antd", {
"style": true
}]
]
}
Console error message:
=> Errors prevented startup:
While processing files with ecmascript (for target web.browser):
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:329:12:
/imports/ui/App.jsx: Cannot read property '0' of null
at CodeGenerator._push
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:329:12)
at CodeGenerator.push
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:298:10)
at CodeGenerator.Identifier
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/types.js:44:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.ImportSpecifier
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/modules.js:22:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.printJoin
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:213:12)
at CodeGenerator.ImportDeclaration
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/modules.js:142:12)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.printJoin
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:213:12)
at CodeGenerator.printSequence
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:267:17)
at CodeGenerator.Program
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/base.js:20:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.File
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/base.js:11:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.generate
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/index.js:176:10)
at exports.default
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/index.js:20:14)
at File.generate
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/file/index.js:694:48)
at File.transform
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/file/index.js:553:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/pipeline.js:73:19
at File.wrap
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/file/index.js:563:16)
at Pipeline.transformFromAst
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/pipeline.js:70:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/index.js:60:8
at Cache.Cp.get
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/cache.js:94:19)
at Object.compile
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/index.js:47:23)
at Object.Babel.compile (packages/babel-compiler/babel.js:26:1)
at packages/babel-compiler/babel-compiler.js:109:1
at Function.time (/tools/tool-env/profile.js:305:10)
at profile (packages/babel-compiler/babel-compiler.js:139:1)
at BabelCompiler.BCp.processOneFileForTarget (packages/babel-compiler/babel-compiler.js:108:1)
at BabelCompiler. (packages/babel-compiler/babel-compiler.js:21:1)
at Array.forEach (native)
at BabelCompiler.BCp.processFilesForTarget (packages/babel-compiler/babel-compiler.js:20:1)
While processing files with ecmascript (for target os.linux.x86_64):
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:329:12:
/imports/ui/App.jsx: Cannot read property '0' of null
at CodeGenerator._push
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:329:12)
at CodeGenerator.push
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:298:10)
at CodeGenerator.Identifier
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/types.js:44:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.ImportSpecifier
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/modules.js:22:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.printJoin
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:213:12)
at CodeGenerator.ImportDeclaration
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/modules.js:142:12)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.printJoin
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:213:12)
at CodeGenerator.printSequence
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:267:17)
at CodeGenerator.Program
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/base.js:20:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.File
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/generators/base.js:11:8)
at CodeGenerator._print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:177:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:113:14
at CodeGenerator.withSource
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/buffer.js:275:5)
at CodeGenerator.print
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/printer.js:112:10)
at CodeGenerator.generate
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/index.js:176:10)
at exports.default
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/node_modules/babel-generator/lib/index.js:20:14)
at File.generate
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/file/index.js:694:48)
at File.transform
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/file/index.js:553:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/pipeline.js:73:19
at File.wrap
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/file/index.js:563:16)
at Pipeline.transformFromAst
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/node_modules/babel-core/lib/transformation/pipeline.js:70:17)
at
/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/index.js:60:8
at Cache.Cp.get
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/cache.js:94:19)
at Object.compile
(/home/developer/.meteor/packages/ecmascript/.0.4.5.1qjeacz++os+web.browser+web.cordova/plugin.compile-ecmascript.os/npm/node_modules/meteor/babel-compiler/node_modules/meteor-babel/index.js:47:23)
at Object.Babel.compile (packages/babel-compiler/babel.js:26:1)
at packages/babel-compiler/babel-compiler.js:109:1
at Function.time (/tools/tool-env/profile.js:305:10)
at profile (packages/babel-compiler/babel-compiler.js:139:1)
at BabelCompiler.BCp.processOneFileForTarget (packages/babel-compiler/babel-compiler.js:108:1)
at BabelCompiler. (packages/babel-compiler/babel-compiler.js:21:1)
at Array.forEach (native)
at BabelCompiler.BCp.processFilesForTarget (packages/babel-compiler/babel-compiler.js:20:1)
=> Your application has errors. Waiting for file change.
就提示 引发了异常但未捕获
"babel": {
"presets": [
"es2015-webpack",
"react",
"stage-0"
],
"plugins": ["antd", { "style": "css" } ],
"env": {
"production": {
"only": [
"app"
],
"plugins": [
"transform-react-remove-prop-types",
"transform-react-constant-elements",
"transform-react-inline-elements"
]
}
}
},
Localhost: http://localhost:3000
LAN: http://192.168.31.107:3000
-----------------------------------
Press CTRL-C to stop
webpack built ffe827e86599be33d88d in 1361ms
ERROR in ./app/app.js
Module build failed: Error: Plugin 1 specified in "/Users/xieyiming/code/coder_club/front_end/package.json" provided an invalid property of "style"
at Plugin.init (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/plugin.js:138:13)
at Function.normalisePlugin (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/options/option-manager.js:147:12)
at /Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/options/option-manager.js:181:30
at Array.map (native)
at Function.normalisePlugins (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/options/option-manager.js:153:20)
at OptionManager.mergeOptions (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/options/option-manager.js:245:36)
at OptionManager.init (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/options/option-manager.js:360:12)
at File.initOptions (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/index.js:223:65)
at new File (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/file/index.js:140:24)
at Pipeline.transform (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
at transpile (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-loader/index.js:14:22)
at Object.module.exports (/Users/xieyiming/code/coder_club/front_end/node_modules/babel-loader/index.js:88:12)
@ multi main
Child html-webpack-plugin for "index.html":
代码:
import { Modal } from 'antd';
const _Modal = bind({})(Modal);
报错:
Modal undefined
{
"stage": 2,
"env": {
"development": {
"plugins": [
"react-transform",
["antd",{"style":true}]
],
"extra": {
"react-transform": {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}]
}
}
}
}
}
以上是我的配置文件,不过总是提示
The plugin ["antd",{"style":true}] didn't export a Plugin instance
import { Select } from 'antd';
render(<Foo component={Select} />);
感觉是个深坑,靠补全场景补不完。考虑降级,不支持 import antd from 'antd'
,然后 import 的组件不改名。
以下代码怎么添加?
loaders: [
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel',
query: {
presets: ['react', 'es2015', 'stage-0']
}
}
]
ant-design/ant-design#900 (comment)
And that will convert this
import { Button } from 'antd';
ReactDOM.render(<Button>xxxx</Button>, mountNode);
to
var _button = require('antd/lib/button');
require('antd/style/components/button');
ReactDOM.render(<Button>xxxx</Button>, mountNode);
但是实际上样式并没有被成功加载
cat package.json
{
"name": "comment",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"admin-lte": "^2.3.3",
"angularic-ionicon": "^1.1.0",
"antd": "^1.6.2",
"babel-core": "^5.8.20",
"babel-loader": "^5.3.2",
"babel-polyfill": "^6.7.4",
"css-loader": "^0.23.1",
"file-loader": "^0.8.5",
"font-awesome": "^4.6.1",
"highcharts": "^4.2.5",
"history": "^2.1.1",
"jquery": "^2.2.3",
"less-loader": "^2.2.3",
"moment": "^2.13.0",
"react": "^0.14.3",
"react-bootstrap": "^0.29.4",
"react-dom": "^0.14.3",
"react-highcharts": "^8.3.2",
"react-loading": "0.0.9",
"react-router": "^2.4.0",
"style-loader": "^0.13.1",
"webpack": "^1.12.9"
},
"devDependencies": {
"babel-plugin-antd": "^0.4.0"
}
}
[Witee@Witees-MBP v5 ]$ cat webpack.config.js
var webpack = require('webpack');
var path = require("path");
module.exports = {
entry: "./apps/entry.js",
output: {
path: path.join(__dirname, "./static/"),
filename: "/js/bundle.js"
},
resolve: {
extensions: ["", ".js", ".jsx"]
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery",
"window.jQuery": "jquery"
})
],
module: {
loaders: [
{test: /.css$/, loaders: ['style-loader', 'css-loader']},
{test: /.less$/, loaders: ['style-loader', 'css-loader', 'less-loader']},
{test: /.js$/, loaders: ['babel-loader'], exclude: /(node_modules|bower_components)/},
{test: /.(ttf|eot|svg|woff2|woff)(?.*)?$/, loader: "file-loader", query: {name: "/fonts/[name]-[hash].[ext]"}},
{test: /.jpe?g$|.gif$|.png$/, loader: "file-loader", query: {name: "/images/[name]-[hash].[ext]"}}
]
},
babel: {
"plugins": [["antd", {"style" : "css"}]],
}
}
^C[Witee@Witees-MBP v5 ]$ ./webpack_dev.sh
0% compilehttps://localhost:8080/webpack-dev-server/
webpack result is served from /
content is served from /Users/xiewt/learnPython/hydra/v5/static
Hash: a64dc3ee044410ba5251
Version: webpack 1.13.0
Time: 758ms
ERROR in ./apps/entry.js
Module build failed: TypeError: The plugin ["antd",{"style":"css"}] didn't export a Plugin instance
at PluginManager.validate (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-core/lib/transformation/file/plugin-manager.js:164:13)
at PluginManager.add (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-core/lib/transformation/file/plugin-manager.js:213:10)
at File.buildTransformers (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-core/lib/transformation/file/index.js:237:21)
at new File (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-core/lib/transformation/file/index.js:139:10)
at Pipeline.transform (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-core/lib/transformation/pipeline.js:164:16)
at transpile (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-loader/index.js:12:22)
at Object.module.exports (/Users/xiewt/learnPython/hydra/v5/node_modules/babel-loader/index.js:71:12)
webpack: bundle is now VALID.
主要是 Module build failed: TypeError: The plugin ["antd",{"style":"css"}] didn't export a Plugin instance
求大神帮忙!
Module not found: Error: Cannot resolve module 'antd/lib/select/style/css'
基本就是版本不一致,文件路径找不到,是否有解决办法?
import {Button} from 'antd';
=>
require('antd/lib/button');
require('antd/lib/button/style/css');
打包如果使用这个插件babel-preset-react-optimize
的话,会导致这个问题,其他组件也是一样。
ERROR in ./src/index.js
Module build failed: ReferenceError: [BABEL] /Users/chenllos/dev/souche/dfc-MiToAdmin/src/index.js:
Unknown option: /Users/chenllos/dev/souche/dfc-MiToAdmin/node_modules/antd/lib/index.js.Affix.
Check out http://babeljs.io/docs/usage/options/ for more info
是因为安装的是编译过后的antd, 导致插件不能按es6的import
模式解析antd的所有组件吗?
求:该插件的使用方法,
以及antd的nodejs集成【因为nodejs使用了express服务器,跟npm run dev生产的服务器没法集成】
"babel-plugin-antd": "^0.5.1",
"antd-mobile": "^0.7.8",
npm -v
3.8.9
node -v
v6.2.0
ERROR in ./src/entries/index.js
Module build failed: Error: Plugin 0 specified in "D:\\..省略路徑..\\.babelrc.env.develo
pment" provided an invalid property of "libraryName"
at Plugin.init (D:\..省略路徑..\node_modules\babel-core\lib\transformation\plugin.js
:131:13)
at Function.normalisePlugin (D:\..省略路徑..\node_modules\babel-core\lib\transformat
ion\file\options\option-manager.js:144:12)
at D:\..省略路徑..\node_modules\babel-core\lib\transformation\file\options\option-ma
nager.js:176:30
at Array.map (native)
at Function.normalisePlugins (D:\..省略路徑..\node_modules\babel-core\lib\transforma
tion\file\options\option-manager.js:150:20)
at OptionManager.mergeOptions (D:\..省略路徑..\node_modules\babel-core\lib\transform
ation\file\options\option-manager.js:224:36)
at OptionManager.init (D:\..省略路徑..\node_modules\babel-core\lib\transformation\fi
le\options\option-manager.js:338:12)
at File.initOptions (D:\..省略路徑..\node_modules\babel-core\lib\transformation\file
\index.js:216:65)
at new File (D:\..省略路徑..\node_modules\babel-core\lib\transformation\file\index.j
s:137:24)
at Pipeline.transform (D:\..省略路徑..\node_modules\babel-core\lib\transformation\pi
peline.js:46:16)
at transpile (D:\..省略路徑..\node_modules\babel-loader\index.js:38:20)
at Object.module.exports (D:\..省略路徑..\node_modules\babel-loader\index.js:131:12)
@ multi app
//.babelrc
{
"env": {
"development": {
"plugins": [
[
{ libraryName: "antd", libraryDirectory: "lib", style: true,},
{ libraryName: "antd-mobile",libraryDirectory: "component",},
]
]
}
}
}
//webpack
modulesDirectories: ['node_modules', path.join(__dirname, '../node_modules')],
extensions: ['', '.web.js', '.js', '.jsx', 'json', '.css'],
//问题解决
['antd', [
{ libraryName: "antd", libraryDirectory: "lib", style: true,},
{ libraryName: "antd-mobile",libraryDirectory: "component",},
]]
import {Toast} from 'antd-mobile';
componentDidMount() {
window.Toast = Toast;
Toast.success('test')
}
转换成了
var _toast = require('antd-mobile/lib/toast');
var _toast2 = _interopRequireDefault(_toast);
CommunityPage.prototype.componentDidMount = function componentDidMount() {
window.Toast = Toast;
_toast2.default.success('test');
};
Using this plugin in package.json:
"babel": { "presets": [ "es2015", "react" ], "plugins": [ "babel-plugin-antd" ] }
But chrome still warned me that
you are using prebuild antd,
please use https://github.com/ant-design/babel-plugin-antd to reduce app bundle size.
ENV:
antd: 1.0.0
babel-plugin-antd: 0.4.0
import { DatePicker } from 'antd';
export default DatePicker;
而不是
import { DatePicker } from 'antd';
const MyDatePicker = DatePicker;
export default MyDatePicker;
RT
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/table/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/radio/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/checkbox/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/dropdown/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/spin/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/pagination/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/select/style/index.css doesn't export content
ERROR in /Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/extract-text-webpack-plugin/loader.js?{"omit":1,"extract":true,"remove":true}!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/style-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/css-loader/index.js!/Users/Kai/Code/Project/ACT-Office-Supplies/node_modules/antd/lib/switch/style/index.css doesn't export content
针对多个库进行按需加载。
当我们使用webpack2的时候,babelrc会这样配置:(配合^6.13版本的babel)
"presets": [
["es2015",{
"modules":false
}],
"react",
"stage-0"
],
而webpack1会这样
"presets": [ "es2015","react","stage-0" ]
对于这样一份源代码
import React from 'react';
import ReactDom from 'react-dom';
import { Button } from 'antd';
ReactDOM.render(<div>
<Button>xxxx</Button>
</div>, document.getElementById('react-container'));
webpack2的配置会编译成这样
import React from 'react';
import ReactDom from 'react-dom';
import { Button } from 'antd';
ReactDOM.render(React.createElement(
'div',
null,
React.createElement(
Button,
null,
'xxxx'
)
), document.getElementById('react-container'));
webpack1的配置会编译成这样
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _antd = require('antd');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
ReactDOM.render(_react2.default.createElement(
'div',
null,
_react2.default.createElement(
_antd.Button,
null,
'xxxx'
)
), document.getElementById('react-container'));
前者配合 babel-plugin-antd,配置style:true
的时候 编译阶段就会报这个错误 #43
可能重现会比较麻烦,我这边自己试了是跟 import 的语法有关系,可能是里面遍历ast的时候有bug。官方有跟webpack2配合的例子?
文档中的.写法是:
{
"plugins": ["antd", options]
}
webpack 直接报错
改成:
{
"plugins": [["antd", options]]
}
(多了一对中括号)
不报错,但是webpack 编译后,运行,浏览器报告警告:
you are using prebuild antd,
please use https://github.com/ant-design/babel-plugin-antd to reduce app bundle size.
求解!!!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.