gpt4 book ai didi

javascript - 汇总.js : undefined objects in external dependencies

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:42:04 25 4
gpt4 key购买 nike

我最近开始玩 rollupjs。在根据可用文档配置所有内容并将其捆绑后,我从外部库中收到许多关于 undefined object 的错误。这种错误:Cannot read property 'parse' of undefined 来自 crypto-js。它提示代码中的这一行:var ciphertext = Base64.parse(openSSLStr)。所以 Base64 是未定义的。我从捆绑的不同外部库中很少遇到这样的错误。

我使用了一些外部依赖项:图表.js,加密 js, Mithril ,片刻,复数化

所有这些都与 jspm 完美配合。我决定尝试 rollup 来加快速度,因为目前 jspm 太慢了。现在我的外部依赖项有一半停止工作了。我收到“未定义的东西”和“...不是函数”之类的错误,这些错误仅来自外部库。

可能是什么原因造成的?

这是我的 rollup.config.js

import babel from 'rollup-plugin-babel';
import npm from 'rollup-plugin-npm';
import commonjs from 'rollup-plugin-commonjs';
import uglify from 'rollup-plugin-uglify';

export default {
entry: 'app/scripts/application/main.js',
format: 'cjs',
plugins: [
npm({
jsnext: true,
main: true,
}),
babel({
exclude: 'node_modules/**',
presets: [ 'es2015-rollup' ],
}),
commonjs(),
uglify(),
],
dest: 'static/js/application.js',
};

如果需要任何其他详细信息,请告诉我。

谢谢。

编辑

我已经完成了一个简单的测试重现,将那些在我的应用程序中产生错误的库捆绑在一起。

包.json

{
"name": "minion",
"private": true,
"babel": {
"presets": [
"es2015-rollup"
]
},
"dependencies": {
"chart.js": "^1.0.2",
"crypto-js": "^3.1.6",
"mithril": "^0.2.2-rc.1",
"moment": "^2.11.1",
"pluralize": "^1.2.1"
},
"devDependencies": {
"babel-preset-es2015-rollup": "^1.1.1",
"rollup-plugin-babel": "^2.3.9",
"rollup-plugin-commonjs": "^2.2.0",
"rollup-plugin-npm": "^1.3.0",
"rollup-plugin-uglify": "^0.1.0"
}
}

rollup.config.js

import babel from 'rollup-plugin-babel';
import npm from 'rollup-plugin-npm';
import commonjs from 'rollup-plugin-commonjs';
import uglify from 'rollup-plugin-uglify';

export default {
entry: 'app/main.js',
format: 'cjs',
plugins: [
npm({
jsnext: true,
main: true,
}),
babel({
exclude: 'node_modules/**',
presets: [ 'es2015-rollup' ],
}),
commonjs(),
//uglify(),
],
dest: 'static/js/app.js',
}

主要.js

import Application from './application'
import pluralize from 'pluralize'


var text = Application.run()

console.log(`Testing encryption: ${text}`)
console.log(`Testing pluralization: ${pluralize('person')}`)

应用程序.js

import crypt from 'crypto-js'

var Application = {
run() {
var ciphertext = crypt.AES.encrypt('Testing encryption...', 'password')
var bytes = crypt.AES.decrypt(ciphertext.toString(), 'password')
return bytes.toString(crypt.enc.Utf8)
}
}

export default Application

运行上面的命令会产生错误。

最佳答案

只是推测:可能是汇总和/或加密的错误。

尝试在 Node Red 中运行 js 函数时我遇到了类似的错误,当我在本地运行它时 js 没问题,但它在运行时抛出 TypeError: Cannot read property 'split' of undefined远程。

我的代码与您的唯一共同点是都使用密码学,特别是 crypto-js 3.1.2 汇总“hmac-sha256.js”,并且代码不是导入的而是原始的。

即使删除了唯一的'split'实例,我也无法解决它(但继续在本地运行)

关于javascript - 汇总.js : undefined objects in external dependencies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34973542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com