Iview-admin: 编译错误

Created on 25 Oct 2017  ·  19Comments  ·  Source: iview/iview-admin

node --version
v8.7.0

npm -v
5.4.2

npm install
npm run dev
按文档描述的执行,结果报错:

ERROR in Error: Child compilation failed:
Module build failed: SyntaxError: Unexpected token (1:0)

1 |
| ^
2 |
3 |
4 |
:
BabelLoaderError: SyntaxError: Unexpected token (1:0)
1 |
| ^
2 |
3 |
4 |

  • compiler.js:76
    [iview-admin]/[html-webpack-plugin]/lib/compiler.js:76:16

  • Compiler.js:296 Compiler.
    [iview-admin]/[webpack]/lib/Compiler.js:296:10

  • Compiler.js:499
    [iview-admin]/[webpack]/lib/Compiler.js:499:13

  • Tapable.js:202 next
    [iview-admin]/[tapable]/lib/Tapable.js:202:11

  • CachePlugin.js:62 Compiler.
    [iview-admin]/[webpack]/lib/CachePlugin.js:62:5

  • Tapable.js:206 Compiler.applyPluginsAsyncSeries
    [iview-admin]/[tapable]/lib/Tapable.js:206:13

  • Compiler.js:496
    [iview-admin]/[webpack]/lib/Compiler.js:496:10

  • Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [iview-admin]/[tapable]/lib/Tapable.js:195:46

  • Compilation.js:649 self.applyPluginsAsync.err
    [iview-admin]/[webpack]/lib/Compilation.js:649:19

  • Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [iview-admin]/[tapable]/lib/Tapable.js:195:46

  • Compilation.js:640 self.applyPluginsAsync.err
    [iview-admin]/[webpack]/lib/Compilation.js:640:11

  • Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [iview-admin]/[tapable]/lib/Tapable.js:195:46

  • Compilation.js:635 self.applyPluginsAsync.err
    [iview-admin]/[webpack]/lib/Compilation.js:635:10

  • Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [iview-admin]/[tapable]/lib/Tapable.js:195:46

  • Compilation.js:631 sealPart2
    [iview-admin]/[webpack]/lib/Compilation.js:631:9

  • Tapable.js:195 Compilation.applyPluginsAsyncSeries
    [iview-admin]/[tapable]/lib/Tapable.js:195:46

Child html-webpack-plugin for "../index.html":
chunk {0} ../index.html 599 bytes [entry]
[0] ./~/html-webpack-plugin/lib/loader.js!./src/template/index.ejs 599 bytes {0} [built] [failed] [1 error]

ERROR in ./~/html-webpack-plugin/lib/loader.js!./src/template/index.ejs
Module build failed: SyntaxError: Unexpected token (1:0)

> 1 | <!DOCTYPE html>
    | ^
  2 | <html lang="zh-CN">
  3 |
  4 | <head>

菜鸟一枚,麻烦指教

helpful

Most helpful comment

@spqchk 抱歉人老眼花,给你另外一个答案,本人亲测可编译:

  1. npm install ejs-loader --save-dev
  2. webpack.dev.config.js -> 31 line -> template: '!!ejs-loader!./src/template/index.ejs',
  3. webpack.prod.config.js 同上
  4. npm run init

it should work now~

原因在于:如果不设定任何模板loader,HtmlWebpackPlugin会默认加载lodash loader(参考链接),但我们需要ejs-loader。

All 19 comments

同样遇到这个问题

你们是什么系统下编译的

macOS 10.13 系统

同样问题,mac下,node6.6.0

不得不说,一样的问题!也是mac

我开发就用mac开发的,建议删了依赖重新装下,用Npm别用cnpm

mac 下删除依赖重新安装,还是同样问题,但其他mac相同node,npm版本,正常。出错的还是找不出原因。

请问现在还有存在问题的吗

还存在着呢

执行:
npm install
npm run dev
报出同上问题。
Ubuntu 16.04.3
nodejs -v8.7.0
npm 5.5.1

调整 webpack.base.config.js 文件中的 42行:
原码: {
test: /iview\/.?js$/,
loader: 'babel-loader',
},
改成: {
test: /view\/.
?js$/,
loader:'babel-loader',
},

@zkcode 按照您这个改,问题依然存在

@spqchk 抱歉人老眼花,给你另外一个答案,本人亲测可编译:

  1. npm install ejs-loader --save-dev
  2. webpack.dev.config.js -> 31 line -> template: '!!ejs-loader!./src/template/index.ejs',
  3. webpack.prod.config.js 同上
  4. npm run init

it should work now~

原因在于:如果不设定任何模板loader,HtmlWebpackPlugin会默认加载lodash loader(参考链接),但我们需要ejs-loader。

@zkcode
webpack: Compiled successfully.
膝盖奉上。

@zkcode
编译通过了,非常感谢!

添加exclude: /node_modules/
{
test: /iview\/.*?js$/,
loader: 'babel-loader',
exclude: /node_modules/
}

在目录名包含中横线的时候会报这个错误,比如 iview-admin ,改为 iviewAdmin 后正常。
环境:Homestead

我clone 别人的项目 也是有同样的问题 后来找了很多解决方法 没有成功

最终找到了下面的方法 很多提示说是 npm 版本问题 测试了一下确实是 降低npm 版本 在install 依赖包就没有问题了
此处推荐 用npm不要用cnpm

npm -g i npm@4

@zkcode 膝盖奉上!!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

330132662 picture 330132662  ·  4Comments

Tang-Ni picture Tang-Ni  ·  4Comments

tinnkm picture tinnkm  ·  4Comments

zhangwei900808 picture zhangwei900808  ·  5Comments

hardphp picture hardphp  ·  6Comments