【发布时间】:2016-05-03 23:49:16
【问题描述】:
我正在尝试按照这里的教程进行操作:https://facebook.github.io/react/docs/getting-started.html
只需尝试在 Sublime Text 3 或 webpack 中构建以下内容:
// ReactTest.js
var React = require('react');
var ReactDOM = require('react-dom');
console.log("Hello");
ReactDOM.render(
<h1>Hello, world!</h1>,
document.getElementById('example')
);
我已经安装了 Sublime Text 3,以及通过 Package Control 安装以下包:
- Babel 语法高亮
- Sublime Linter (3) 用于错误检查
- Sublime Linter-contrib-eslint(eslint 的接口)
我已经通过自制软件安装了节点:
brew install node
使用 NPM 安装以下内容:
npm install webpack -g
npm install --save react react-dom babel-preset-react babel-preset-es2015
npp install jsxhint -g
npm install -g jshint
据我了解,这应该是我运行两个选项所需的一切:
-
使用 Sublime Text 3 的构建:我通过 Tools -> Build System -> New Build System 为 Sublime Text 添加了一个新的“构建系统”并创建了文件:
{ "cmd" : ["/usr/local/bin/node", "$file"], "selector":"source.js" }
保存到我的操作系统上的 me/Library/ApplicationSupport/SublimeText3/Packages/user/node.sublime.build。
我运行 Tools -> Build 来构建结果:
/Users/me/Desktop/Test/ReactTest.js:8
<h1>Hello, world!</h1>,
^
SyntaxError: Unexpected token <
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
[Finished in 0.1s with exit code 1]
[cmd: ['/usr/local/bin/node', '/Users/me/Desktop/Test/ReactTest.js']]
[dir: /Users/me/Desktop/Test]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
-
还尝试通过以下命令使用 webpack 做同样的事情:
webpack ReactTest.js Bundle.js
结果:
ERROR in ./ReactTest.js
Module parse failed: /Users/me/Desktop/Test/ReactTest.js Line 8: Unexpected token <
You may need an appropriate loader to handle this file type.
|
| ReactDOM.render(
| <h1>Hello, world!</h1>,
| document.getElementById('example')
| );
谁能告诉我我做错了什么?
编辑:对所有这些技术来说都是全新的。这是我在 Sublime Text 中的项目的屏幕截图。
编辑 2:我从网上复制的 .babelrc 文件:
{
"plugins": ["transform-react-jsx"],
"ignore": [
"foo.js",
"bar/**/*.js"
]
}
【问题讨论】:
-
你在root下配置了.babelrc吗?
-
显示你的 webpack.js
-
@RajaSekar 不,默认情况下,/Users/me/ 中不存在 .babelrc。 webpack.js 需要放在哪里?
-
其实你使用的是jsx,所以你需要在webpack中配置loader来将你的jsx转译成js。检查webpack.github.io/docs/loaders.html
-
我感觉自己要掉进兔子洞了。为什么这里的教程看起来如此简单:facebook.github.io/react/docs/getting-started.html?在“使用 npm 中的 React”下,可能只是将所有 webpack 配置排除在外......
标签: node.js npm sublimetext3 webpack react-jsx