如何使用 Browserify 要求供应商脚本?

How to require vendor script with Browserify?

我是 Browserify 的新手,我让它与我自己的模块一起工作(与 gulp 一起工作得很好)。但是,现在我正在尝试包含外部供应商脚本(棱镜语法荧光笔)。

这是我的 bundle.js:

'use strict';

var $ = require('jquery'),
    animate404 = require('./modules/404'),
    prism = require('./vendor/prism');

$(function() {
    new prism();
    new animate404(document.querySelector('.title404'));
});

所以,404 模块可以很好地工作,但是缩小的棱镜荧光笔不能。控制台在 new prism();:

上显示错误
Uncaught TypeError: object is not a function

我是不是做错了什么?我尝试使用谷歌搜索,但找不到答案...在此先感谢。

因为 prism 不兼容 CommonJS,所以你必须使用 browserify-shim

首先npm install browserify-shim --save-dev。然后在你的 package.json 文件中

{
  "browser": {
    "prism": "./vendor/prism/prism.js"
  },
  "browserify-shim": {
    "prism": "Prism"
  }
}

然后在您的 bundle.js 文件中

var prism = require('prism')