我在一个ES6项目上工作,我使用rollup和babel传输这个项目。它工作得很好,除非我试图导入使用公共is (特别是“某事”)的npm模块,在我的浏览器中获得一个错误"require is defined“(这意味着它还没有正确地将节点模块从commonjs编译到ES5)。但是,我使用了rollup插件-节点-解析和rollup plugin-commonjs,如果我理解得很好的话,它应该可以完成这个任务……
下面是我的rollup配置文件:
import babel from 'rollup-plugin-babel';
import eslint from 'rollup-plugin-eslint';
import resolve from 'rollup-plugin-node-resolve'; // to import node_modules packages easily
import commonjs from 'rollup-plugin-commonjs'; // convert commonjs to es6 (in case you use require)
export default {
input: 'src/main.js',
output: {
file:'build/index.js',
format: 'iife'
},
sourcemap: 'inline',
plugins: [
resolve({
jsnext: true,
main: true,
browser: true
}),
commonjs({
include: 'src/**'
}),
eslint({
exclude: [
'src/styles/**',
]
}),
babel({
exclude: 'node_modules/**',
})
],
};我的babel配置文件:
{
"presets": [
[
"es2015",
{
"modules": false
}
]
],
"plugins": ["external-helpers"]
}我无法加载的模块有math.js、nsolvejs、chroma.js、data.gui等。
发布于 2017-09-10 15:12:23
这个问题可能与commonjs插件有关,它用于在构建时将cjs转换为es模块,因此您应该包括来自node_modules的cjs模块,而不是src。
commonjs({
include: 'node_modules/**'
})https://stackoverflow.com/questions/46131026
复制相似问题