如何在package.json中指定browserify扩展?

时间:2015-06-21 21:04:41

标签: javascript browserify package.json

在package.json中:

...
"browserify": {
  "transform": [
    "coffee-reactify"
  ],
  "extension": [ ".cjsx", ".coffee", ".js", ".json" ],
  "extensions": [ ".cjsx", ".coffee", ".js", ".json" ]
},
...

当使用browserify transform选项按预期工作时,但是browserify没有看到extension(s)选项 - 它会抛出错误,我必须手动传递扩展选项以进行浏览...

在gulpfile.coffee中

b = browserify
  entries: './' # ./ = root = directory where package.json is
  debug: true
b.bundle()
.pipe(source('client.js'))
.pipe(buffer())
.pipe(gulp.dest(distDir))
package.json中的

"browser": "src/client/client",
"browserify": {
  "transform": [
    "coffee-reactify"
  ],
  "extension": [
    "cjsx",
    "coffee",
    "js",
    "json"
  ]
},

的src /客户端/ client.cjsx

otherModule = require './other-module' # other-module.cjsx
  1. 当我从package.json中的coffee-reactify中删除transforms时,浏览器会抛出错误Parsing file .../src/client/client.cjsx: Unexpected token (2:16)

  2. 当我将coffee-reactify放回package.json中的transforms时,只要我不需要任何其他client.cjsx文件,浏览器就会成功解析.cjsxclient.cjsx内。因此,对于client.cjsx上面的示例代码,浏览器会抛出错误:Cannot find module './other-module' from '/src/client - browserify仍然无法识别扩展名...

  3. 所以browserify读取package.json(识别package.browserify.transforms和package.browser字段,但它不识别扩展名)

2 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题。我们通过将jQuery('#datetimepicker4').datetimepicker({ format:'d.m.Y H:i', lang:'ru', scrollMonth : false }); 添加到extensions gulp函数调用来实现它。

browserify

我们根本没有browserify({ entries: "src/index.coffee", extensions: [".cjsx", ".coffee", ".js", ".json" ] }) ,只是在gulp命令中。

答案 1 :(得分:0)

试试这个:

"browserify": {
  "transform": [
    "coffee-reactify"
  ],
  "extension": [ 
    "cjsx", 
    "coffee", 
    "js", 
    "json" 
  ]
},

删除.点。看看this question