与commonjs一起滚动,进出口以及进出口



我正在尝试滚动,commonjs,es6和树木摇动正常工作。

目前,我有以下构建脚本:

'use strict';
const rollup = require('rollup');
const resolve = require('rollup-plugin-node-resolve');
const commonjs = require('rollup-plugin-commonjs');
rollup.rollup({
  input: 'main.js',
  format: 'iife',
  plugins: [
    {
      transform(code, id) {
        return code;
      }
    },
    resolve({
      extensions: ['.js', '.jsx']
    }),
    commonjs({
      extensions: ['.js', '.jsx']
    })
  ]
})
.then(({ generate }) => generate({
  format: 'iife',
  name: 'test',
}))
.then(({ code }) => console.log(code));

加载以下main.js文件

const { firstFunction } = require('./exports');
firstFunction();

export.js文件

export function firstFunction() {
  return this.name;
}
export function secondFunction() {
  return this.name;
}

输出以下内容:

var test = (function () {
'use strict';
function firstFunction$1() {
  return this.name;
}
function secondFunction() {
  return this.name;
}

var exports$1 = Object.freeze({
    firstFunction: firstFunction$1,
    secondFunction: secondFunction
});
var require$$0 = ( exports$1 && undefined ) || exports$1;
const { firstFunction } = require$$0;
firstFunction();
var main = {
};
return main;
}());

我不确定这是正确的行为,我假设我能够使用es6 export.js文件摇晃树木,因此不需要在我们的捆绑代码中从 export.js导入 secondFunction()

我尝试了许多设置的组合,但似乎没有什么能让摇摇欲坠的工作。

值得注意的是,我正在使用服务器上的commonj并尝试使用客户端上的相同文件 - 这就是为什么我混合了CJS和ES6。

如Lux在评论中所述,问题是您要混合CJ和ES模块。看来rollup-plugin-commonjs没有进口。

您应该首先将文件与汇总捆绑在一起,然后将CJ用作输出格式。然后您 require捆绑包。

应该得到您的JavaScript treeshaken并为节点准备就绪。

相关内容

  • 没有找到相关文章

最新更新