0

我有一个 donejs 应用程序,它在开发模式下运行正常donejs develop,但是当我在生产模式下运行它时:

  1. donejs build
  2. donejs deploy(到火力基地)
  3. NODE_ENV=production donejs start

它不会启动并显示错误(参见代码 A)

此文件:file:my-app/dist/bundles/my-app/index.js:704对应于 JQuery 3.x,它不是项目本身的依赖项,而是 can-connect-feathers 的依赖项(https://github.com/canjs/can-connect-feathers)。事实上,index.js其中还包含 JQuery 2.x,这让我觉得它们之间可能存在某种不兼容。

我已经尝试将项目的依赖项更改为 JQuery 3.x 但没有帮助。实际上它甚至donejs develop会失败(参见代码 B)。

我还尝试了以下方法: cd my-app/node_modules/steal npm install 但没有帮助,出现另一个错误并最终尝试cd my-app/node_modules/can && npm install但最终出现多个错误。

我在用着:

  • donejs@0.9.2
  • 节点@4.6.2
  • npm@2.15.11
  • 可以连接羽毛@1.2.1

代码 A

NODE_ENV=production donejs start

my-app@0.0.0 start my-app done-serve --proxy http://localhost:3030 --port 8080 done-serve starting on http://localhost:8080 Potentially unhandled rejection [5] TypeError: Error loading "package.json!npm" at file:my-app/package.json Error loading "bundles/my-app/index" at file:my-app/dist/bundles/my-app/index.js Error evaluating file:my-app/dist/bundles/my-app/index.js Cannot read property 'createElement' of undefined at i (file:my-app/dist/bundles/my-app/index.js:704:20) at file:my-app/dist/bundles/my-app/index.js:1039:2881 at file:my-app/dist/bundles/my-app/index.js:1039:3580 at file:my-app/dist/bundles/my-app/index.js:268:21 at file:my-app/dist/bundles/my-app/index.js:268:27 at Object.exports.runInThisContext (vm.js:54:17) at doEval (my-app/node_modules/steal/node_modules/steal-systemjs/dist/system.src.js:2059:10) at __eval (my-app/node_modules/steal/node_modules/steal-systemjs/dist/system.src.js:1976:7) at Loader.exec [as __exec] (my-app/node_modules/steal/node_modules/steal-systemjs/dist/system.src.js:339:5) at Loader.loader.instantiate (my-app/node_modules/steal/node_modules/steal-systemjs/dist/system.src.js:1517:16)

代码 B

donejs develop

my-app@0.0.0 develop my-app done-serve --develop --proxy http://localhost:3030 --port 8080 done-serve starting on http://localhost:8080 Potentially unhandled rejection [8] Error: Error loading "my-app@0.0.0#index.stache!done-autorender@0.8.0#autorender" at <unknown> Error loading "can@2.3.27#util/jquery/jquery" at file:my-app/node_modules/can/util/jquery/jquery.js Error loading "can@2.3.27#util/jquery/jquery" from "done-autorender@0.8.0#autorender" at file:my-app/node_modules/done-autorender/src/autorender.js Did not find ./node_modules/can/node_modules/jquery/package.json at FetchTask.utils.extend.next (file:my-app/node_modules/steal/ext/npm-crawl.js:532:11) at file:my-app/node_modules/steal/ext/npm-crawl.js:556:33 at tryCatchReject (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:1183:30) at runContinuation1 (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:1142:4) at Fulfilled.when (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:930:4) at Pending.run (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:821:13) at Scheduler._drain (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:97:19) at Scheduler.drain (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:62:9) at nextTickCallbackWith0Args (node.js:436:9) at process._tickCallback (node.js:365:13) Potentially unhandled rejection [16] Error: Error loading "can@2.3.27#util/jquery/jquery" at file:my-app/node_modules/can/util/jquery/jquery.js Error loading "can@2.3.27#util/jquery/jquery" from "my-app@0.0.0#index.stache!done-autorender@0.8.0#autorender" at file:my-app/src/index.stache Did not find ./node_modules/can/node_modules/jquery/package.json at FetchTask.utils.extend.next (file:my-app/node_modules/steal/ext/npm-crawl.js:532:11) at file:my-app/node_modules/steal/ext/npm-crawl.js:556:33 at tryCatchReject (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:1183:30) at runContinuation1 (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:1142:4) at Fulfilled.when (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:930:4) at Pending.run (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:821:13) at Scheduler._drain (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:97:19) at Scheduler.drain (my-app/node_modules/steal/node_modules/steal-systemjs/node_modules/steal-es6-module-loader/dist/es6-module-loader.src.js:62:9) at nextTickCallbackWith0Args (node.js:436:9) at process._tickCallback (node.js:365:13)

4

1 回答 1

2

如果是双jQuery安装问题,应该通过2.0.0版本解决,和1.0版本完全一样,但是需要传入一个jQuery包作为jquery选项。因此,除了您在 can-connect-feathers 配置中的其他内容之外,您还需要提供以下jquery选项:

import $ from 'jquery'
import Feathers from 'can-connect-feathers';

new Feathers({
  jquery: $
});

于 2016-12-06T05:07:52.990 回答