2.1.2 • Published 5 years ago

fis3-parser-apm v2.1.2

Weekly downloads
18
License
ISC
Repository
github
Last release
5 years ago

Travis Appveyor

使用方式

npm install --save-dev fis3-parser-apm fis3-hook-amd@0.2.0 fis3-hook-commonjs

fis-conf.js 配置:

// 启用 AMD hook,编译 amd_modules 下的文件
fis.hook('amd');
// 设置 amd_modules 下文件的 ID
fis.match('/amd_modules/(**).js', {
    moduleId: '$1',
    parser: fis.plugin('apm')
});
// 包含 __inlinePackage 和 __AMD_CONFIG 的文件,要过 APM praser
fis.match('**/*.js', {
    parser: fis.plugin('apm')
});

__inlinePackage

可以将整个包 inline 到当前文件中,例如:

__inlinePackage('foo')

Parser 会把它转换为:

__inline('/amd_modules/foo.js')
__inline('/amd_modules/foo/index.js')
__inline('/amd_modules/foo/lib/util.js')
// ...

__AMD_CONFIG

生成 require.js 配置对象,并替换文件中的 __AMD_CONFIG。 例如:

require.config(__AMD_CONFIG)

Parser 会把它转换为:

require.config({
    'foo': '/amd_modules/foo',
    'foo/index': '/amd_modules/foo/index',
    'foo/lib/util': '/amd_modules/foo/lib/util',

    'bar': '/amd_modules/bar',
    // ...
})

自定义 AMD URL

require config 中的 URL 可以自定义配置,只需穿软一个 path2url 函数,例如:

fis.match('**/*.js', {
    parser: fis.plugin('apm', {
        path2url: function (path) {
            // path === '/amd_modules/foo/index'
            return '/static' + path
        }
    })
});

这样,生成的 config 如下:

require.config({
    'foo': '/static/amd_modules/foo',
    'foo/index': '/static/amd_modules/foo/index',
    'foo/lib/util': '/static/amd_modules/foo/lib/util',

    'bar': '/static/amd_modules/bar',
    // ...
})

.extractAllFiles

为了方便发布和打包,可以提取所有被入口引用到的文件。

let files = require('fis3-parser-apm').extractAllFiles();
console.log(files);
// [
//   '/static/amd_modules/foo.js',
//   '/static/amd_modules/foo/index.js',
//   '/static/amd_modules/foo/lib/util.js',
//   ...
// ]
2.1.2

5 years ago

2.1.1

5 years ago

2.1.0

5 years ago

2.0.4

5 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago