javascript - 前端模块化开发遇到的问题,zepto引入报错
PHPz
PHPz 2017-04-11 12:04:53
0
2
477

直接上代码吧:
我的zepto是直接npm install zepto

// app.js

"use strict";

import $ from 'zepto'

let str = "ok2s"
$("p").html(str)

编译后chrome的报错:

Uncaught TypeError: Cannot read property 'createElement' of undefined 
...

我用的是gulp的browserify编译的,因为实际项目中有多个入口文件,所以用了glob

// gulpfile.js
gulp.task("browserify", function () {

    glob('src/js/**.main.js', function(err, files) {
      if(err) done(err);

      var tasks = files.map(function(entry){
          return browserify({entries: [entry]})
              .transform(babelify,{  //此处babel的各配置项格式与.babelrc文件相同
                presets: [
                  'es2015'  //转换es6代码
                ]
              })
              .bundle()
              .pipe(source(entry))
              .pipe(rename(function(path){
                path.basename += '.bundle';
                path.dirname = ""
              }))
              .pipe(gulp.dest('dist/js/main'));
      });
      return es.merge.apply(null, tasks);
    })

});

我项目文件应该没问题,因为我用 import $ from 'jquery' 是没问题的,

求前辈指教,谢谢

PHPz
PHPz

学习是最好的投资!

全部回覆(2)
左手右手慢动作

因为zepto没有提供对CommonJS的支持,楼主可以参考这篇文章,虽然是webpack的,但是解决方案都是一个思路。
https://sebastianblade.com/ho...
图方便的话就直接用zepto-browserify

黄舟

jQuery 支持 CMD, 但是 Zepto 并不支持, 所以用 jQuery 来说项目文件没问题才是最大问题.

一个办法是把 Zepto 改成支持 CMD 的, 这个办法改动原本的 Zepto 源代码, 我不是很推荐.

另外就是不要把 Zepto 打包. 本身 Zepto 也不会经常更新, 打包之后别的模块一更新, Zepto 还要被打包一遍, 徒然增加更新包的体积, 纯属浪费.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!