Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 强制Browserify转换依赖项?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在同时处理两个Node包,我们称之为Library和Consumer. Library负责在浏览器中呈现大量内容.所有消费者都是从’库’导入库并调用库(someConfigHere) – 它基本上只是一个测试,以确保库在浏览器中做我期望的.

我已将npm链接到Consumer并尝试在Consumer上运行Browserify,但我收到此错误:ParseError:’import’和’export’可能只出现’sourceType:module’.库确实包含ES6导出语句,所以我猜测Browserify只针对Consumer而不是Library运行.

所以我的问题是:有没有办法强制Browserify转换依赖项?

这是我的package.json:

{
  "name": "consumer","version": "1.0.0","description": "","main": "index.js","scripts": {
    "start": "budo index.js --port $PORT","test": "echo \"Error: no test specified\" && exit 1"
  },"author": "","license": "ISC","devDependencies": {
    "babel-preset-es2015": "^6.13.2","babel-preset-react": "^6.11.1","babelify": "^7.3.0","browserify-shim": "^3.8.12"
  },"browserify": {
    "transform": [
      "babelify"
    ]
  },"babel": {
    "presets": [
      "es2015","react"
    ]
  }
}

这是Consumer的index.js:

import Library from 'library'  // <= this is what isn't getting babelified

console.log(Library);

这是Library的index.js:

export default (config) => {
    console.log('Testing testing')
}

解决方法

Browserify转换可以配置为全局,这意味着它们也将应用于node_modules中的文件.

配置是per-transform.有了babelify,你可以像这样配置它:

browserify().transform("babelify",{
  global: true
})

或者,如果您使用命令行,如下所示:

browserify ... -t [ babelify --global ] ...

或者,要在package.json中配置它,它应该是这样的(注意添加的方括号):

"browserify": {
  "transform": [
    ["babelify",{ "global": true }]
  ]
}

Babelify还实现了ignore选项,因此可以将其配置为仅转换node_modules中所需的文件.还有更多信息here.

一个解决方案是在库模块的package.json中包含类似的browserify / babelify配置.处理依赖项时,Browserify将检查所述依赖项的pacakge.json文件以进行转换,并将应用任何已配置的文件.

大佬总结

以上是大佬教程为你收集整理的node.js – 强制Browserify转换依赖项?全部内容,希望文章能够帮你解决node.js – 强制Browserify转换依赖项?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: