Javascript 传输、捆绑和缩小JS,无需吞咽、网页包ect-仅限节点
虽然我不反对使用Webpack来构建我的JS(这很好),但我只是想知道如何自己去做 过去我曾使用过一个GULP脚本,后来才搬到Webpack,但这让我很沮丧,我需要考虑很多小事情。p> 首先,我需要使用browserify,通过babelify和es2015预设运行文件来转换我的JS,然后将其捆绑。显然,browserify的bundle方法返回一个可流化的对象,需要将其转换回gulp喜欢的其他类型的流,然后对其进行“缓冲”,以便稍后缩小。那滔滔不绝的谈话总是把我绊倒 我在想这样的事情可能有用: 我的任务:Javascript 传输、捆绑和缩小JS,无需吞咽、网页包ect-仅限节点,javascript,node.js,webpack,babeljs,transpiler,Javascript,Node.js,Webpack,Babeljs,Transpiler,虽然我不反对使用Webpack来构建我的JS(这很好),但我只是想知道如何自己去做 过去我曾使用过一个GULP脚本,后来才搬到Webpack,但这让我很沮丧,我需要考虑很多小事情。p> 首先,我需要使用browserify,通过babelify和es2015预设运行文件来转换我的JS,然后将其捆绑。显然,browserify的bundle方法返回一个可流化的对象,需要将其转换回gulp喜欢的其他类型的流,然后对其进行“缓冲”,以便稍后缩小。那滔滔不绝的谈话总是把我绊倒 我在想这样的事情可能有用:
const code = babel.transformFileSync(
filename,
{
presets: ['babel-preset-env'],
ignore: ['node_modules/'],
sourceMaps: true
}
);
var result = uglifyjs.minify(code.code);
我的剧本
const myArr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
myArr = myArr.filter( e => e % 2 ==0 );
console.log(myArr);
但它窒息了。似乎巴贝尔不喜欢在我的脚本中使用“const”
node_modules/babel-plugin-check-es2015-constants/lib/index.js:35
throw violation.buildCodeFrameError(messages.get("readOnly", name));
所以这是一个问题,然后我需要找出如何捆绑我的脚本,无论我是否使用require('./custom module.js')或import*from'other custom module.js'我已经阅读了,它没有提到任何关于本机传输功能的内容。也许这就是为什么babel和webpack构建npm模块以便将这些功能添加到NodeJ的原因
我认为可能您没有加载这段代码:
node_modules/babel-plugin-check-es2015-constants/
因为您忽略了/node\u modules
文件夹中的所有内容
我认为,如果您正在运行的babel版本不支持const,那么您可以使用webpack并搜索适当的配置,从2015年到现在,有一些模块将const转换为var声明
这是一个很酷的网页教程--->
希望对您有所帮助:)我已经阅读了,但它没有提到任何关于本机传输功能的内容。也许这就是为什么babel和webpack构建npm模块以便将这些功能添加到NodeJ的原因
我认为可能您没有加载这段代码:
node_modules/babel-plugin-check-es2015-constants/
因为您忽略了/node\u modules
文件夹中的所有内容
我认为,如果您正在运行的babel版本不支持const,那么您可以使用webpack并搜索适当的配置,从2015年到现在,有一些模块将const转换为var声明
这是一个很酷的网页教程--->
希望对您有所帮助:)如果您使用const声明变量,则只能在声明时为其赋值 线路
myArr = myArr.filter( e => e % 2 ==0 );
如果myArr为const,则为非法
关于第二个问题:通常babeljs应该将任何import
转换为require
。捆绑这些是现在棘手的部分,也是像webpack这样的东西存在的原因。您可以查看哪些产品侧重于捆绑销售
此外,你还必须注意操作顺序。如果您首先绑定,您只需在之后使用es6传输整个绑定。如果您使用常量声明变量,则只能在声明时分配给它 线路
myArr = myArr.filter( e => e % 2 ==0 );
如果myArr为const,则为非法
关于第二个问题:通常babeljs应该将任何import
转换为require
。捆绑这些是现在棘手的部分,也是像webpack这样的东西存在的原因。您可以查看哪些产品侧重于捆绑销售
此外,你还必须注意操作顺序。如果您首先绑定,那么您可以在之后使用es6简单地传输整个绑定