Prepack CLI
安装
npm install -g prepack
编译文件
编译文件并将其打印到控制台:
prepack script.js
编译文件并输出到另一个文件:
prepack script.js --out script-processed.js
如果要输出源 map 文件 添加 --srcmapOut
。如果您的软件包是从其他编译器生成的,则Prepack将自动查找 .map
件,但您也可以使用 --srcmapIn
选项进行指定:
prepack script.js --out script-processed.js --srcmapIn script.map --srcmapOut script-processed.map
高级用法, 请参阅 API 选项 或 prepack --help
.
prepack [ --out output.js ] [ --compatibility jsc ] [ --mathRandomSeed seedvalue ] [ --srcmapIn inputMap ] [ --srcmapOut outputMap ] [ --speculate ] [ --trace ] [ -- | input.js ] [ --singlePass ] [ --debugNames ] [ --logStatistics ]
REPL
您也可以在REPL模式下运行Prepack。这可能不是很有用,但它可以让您在Prepack的解释器中测试错误。
prepack-repl
Prepack API
您也可以使用编程API作为Node.js模块。
安装
npm install --save-dev prepack
var Prepack = require("prepack");
import { prepack, prepackFileSync } from 'prepack';
import * as Prepack from 'prepack';
字符串
Prepack.prepack(codeString, options) // returns { code: string, map: SourceMap }
Babel 抽象语法树
Prepack.prepackFromAst(babelAstNode, code, options) // returns { code: string, map: SourceMap }
注意:目前,还需要提供源代码 Function.prototype.toString
和错误消息。
文件异步
Prepack.prepackFile(filename, options, callback) // callback(error, { code: string, map: SourceMap })
文件同步
Prepack.prepackFileSync(filename, options) // returns { code: string, map: SourceMap }
选项
选项 | 类型 | 默认值 | 描述 |
---|---|---|---|
filename |
string |
inferred | 用于错误堆栈的文件名。 |
inputSourceMapFilename |
string |
null |
如果提供,则在生成新的源映射之前,将该输入源映射文件用作输入。 |
sourceMaps |
boolean |
false |
确定是否应生成源映射文件。 |
compatibility |
"browser" | "jsc-600-1-4-17" |
"browser" |
选择内置的环境兼容性。将来会增加更多的内置环境。 |
mathRandomSeed |
string |
null |
如果提供了一个种子串, Math.random() 可以依赖于并在具体代码路径中使用。 |
speculate |
boolean |
false | 如果它们是剩余程序的一部分,则可以预先执行更多的`require(...)`调用。 |
trace |
boolean |
false |
记录评估的函数调用。 |
debugNames |
boolean |
false |
如果为true,请尝试将原始变量和函数名称保留为生成代码的一部分。 |
singlePass |
boolean |
false |
目前,串行器进行两次通过以优化输出中的变量命名,但是这很慢,因此可以让您选择单次通过。此选项预计在将来不再需要。 |
logStatistics |
boolean |
false |
如果为true,则记录生成的对象,函数和ids数量的统计信息。 |
logModules |
boolean |
false |
如果为true,则对模块进行评估。 |
delayUnsupportedRequires |
boolean |
false |
如果为true,则推测执行执行失败则不会被执行。 |
internalDebug |
boolean |
false |
如果为true,则将Prepack中的JS堆栈与Prepacked程序中的堆栈一起打印出来。用于调试Prepack本身。 |
uniqueSuffix |
string |
null |
如果为生成的ID添加了唯一的后缀,这样它们就不会与程序中的其他任何东西相冲突。预计将来会自动尝试添加后缀。 |
timeout |
number |
Infinity |
在程序超时之前运行程序的毫秒数。有用的是在Prepacked程序中避免无限循环。 |
strictlyMonotonicDateNow |
boolean |
false |
目前只用于运行Test262测试套件,它需要按照递增的顺序读取 Date.now() 。 |