Node.js 包括不必要的依赖项和输出中缺少函数的汇总
我第一次使用rollup,它产生了一些意想不到的结果。下面是我示例中的三个文件,以及rollup的输出和我正在寻找的输出类型 我有三个文件01.js,02.js,03.js 01.js 02.js 03.js 这就是罗拉普正在返回的内容。实际的 这就是我希望rollup能够返回的结果。期望 我的印象是,汇总将消除项目中不需要的所有依赖关系。但是,您可以看到,实际输出还包括一个不必要的依赖项lodash,并且它还缺少另一个内部函数StupdReference 我很好奇为什么这没有像我预期的那样起作用。我还想知道我是否正确使用了汇总工具。如果这不是预期用途,我真的很想找到一个能够实现我所寻找的功能的工具。我想提供一个函数或类似于上面01.js的文件,并且只提供运行该函数所需的代码 更新1 不确定我的代码发生了什么,但是汇总站点上的编辑器能够拉入另一个文件并跟踪树 更新2 我意识到我可能错误地配置了babel,我安装了下面两个模块,还添加了.babelrc和rollup.config.js rollup.config.js B.法律改革委员会Node.js 包括不必要的依赖项和输出中缺少函数的汇总,node.js,ecmascript-6,rollupjs,Node.js,Ecmascript 6,Rollupjs,我第一次使用rollup,它产生了一些意想不到的结果。下面是我示例中的三个文件,以及rollup的输出和我正在寻找的输出类型 我有三个文件01.js,02.js,03.js 01.js 02.js 03.js 这就是罗拉普正在返回的内容。实际的 这就是我希望rollup能够返回的结果。期望 我的印象是,汇总将消除项目中不需要的所有依赖关系。但是,您可以看到,实际输出还包括一个不必要的依赖项lodash,并且它还缺少另一个内部函数StupdReference 我很好奇为什么这没有像我预期的那样起作
通过这次更新,同样的输出仍在产生。你会自责:-回购协议有一个拼写错误-stupidReference在几个地方拼写为stuidReference。把那些修好就好了。如果Rollup看到一个不知道其来源的标识符,它会假定它是一个全局标识符,而不是一个拼写错误 Lodash会被包括在内,即使它的依赖函数没有被包括在内,因为Rollup无法知道Lodash是否有副作用。一种选择是在捆绑包中包括Lodash,即使用,以便Rollup可以看到代码,但请注意,因此建议使用Lodash es并导入单个文件: 从“lodash es/map.js”导入地图;
你会自责的:-回购协议有一个拼写错误-StupdReference在几个地方拼写为stuidReference。把那些修好就好了。如果Rollup看到一个不知道其来源的标识符,它会假定它是一个全局标识符,而不是一个拼写错误 Lodash会被包括在内,即使它的依赖函数没有被包括在内,因为Rollup无法知道Lodash是否有副作用。一种选择是在捆绑包中包括Lodash,即使用,以便Rollup可以看到代码,但请注意,因此建议使用Lodash es并导入单个文件: 从“lodash es/map.js”导入地图;
嘿,里奇!我肯定是在踢自己。至于洛达斯,我有点困惑。因为我的构建中不需要lodash,01.js中的任何函数都不使用它,所以它是一个未使用的导入。我们不需要在源代码中包含lodash的map函数,也不需要将它作为汇总创建的捆绑包的npm依赖项。map是一个未使用的导入,只是打开了一个GH–理想情况下它会放弃该说明符,但lodash本身并不是,因为它可能会产生副作用。有一些关于更积极地抛弃这些副作用的选项的讨论,但这是非常棘手的,我想要的是有点不同。我感兴趣的是构建一个工具,将特定的文件/函数分解成一个单独的节点模块,构建一个相关的packages.json文件。忽略未使用的DEP和潜在的副作用。我觉得汇总只是一种方式,它会有所帮助,并且有一种方式可以知道哪些变量没有被使用。需要更多的研究。嘿,里奇!我肯定是在踢自己。至于洛达斯,我有点困惑。因为我的构建中不需要lodash,01.js中的任何函数都不使用它,所以它是一个未使用的导入。我们不需要在源代码中包含lodash的map函数,也不需要将它作为汇总创建的捆绑包的npm依赖项。map是一个未使用的导入,只是打开了一个GH–理想情况下它会放弃该说明符,但lodash本身并不是,因为它可能会产生副作用。有一些关于更积极地抛弃这些副作用的选项的讨论,但这是非常棘手的,我想要的是有点不同。我感兴趣的是构建一个工具,将特定的文件/函数分解成一个单独的节点模块,构建一个相关的packages.json文件。忽略未使用的DEP和潜在的副作用。我觉得汇总只是一种方式,它会有所帮助,并且有一种方式可以知道哪些变量没有被使用。需要更多的研究。
import { fakePromise } from './02'
export default fakePromise
import { map } from 'lodash'
import { stupidReference } from './03'
export function fakePromise (str) {
return stupidReference(str)
}
export function fakeMap (arr) {
return map(arr, item => item + ' is stupid')
}
import Promise from 'bluebird'
export function stupidReference (str) {
return Promise.resolve(str)
}
import { map } from 'lodash';
import Promise from 'bluebird';
function fakePromise (str) {
return stupidReference(str)
}
export default fakePromise;
import Promise from 'bluebird';
function stupidReference (str) {
return Promise.resolve(str)
}
function fakePromise (str) {
return stupidReference(str)
}
export default fakePromise;
npm i rollup-plugin-babel babel-preset-es2015-rollup --save
import babel from 'rollup-plugin-babel';
export default {
entry: './01.js',
plugins: [ babel() ],
format: 'es6'
};
{
"presets": [ "es2015-rollup" ]
}