找不到模块:错误:无法解析“ cropbox” 2

我问了问题Module not found: Error: Can't resolve 'cropbox'
但是我没有得到答案,所以我必须专注于更具体的问题并在StackOverflow中进行搜索,

让我遇到三个问题

1条滑轨不会加载cropbox.js

2 clopbox.js无法导出cropbox函数

3 fileUplod.js无法导入cropbox功能

这是上述问题之一的结果

application.html.erb的一部分:

<%= stylesheet_link_tag 'application',media: 'all','data-turbolinks-track': 'reload' %>
<%= stylesheet_pack_tag 'application','data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application' %>
<%= javascript_pack_tag 'cropbox' %>
<%= javascript_pack_tag 'fileUpload'%> #Here is deleted

故意,我不编译fileUpload 结果,rails可能会加载clopbox.js 所以,我缩小了2个问题

您想告诉我这些问题吗?

环境:

导轨6.0.2 Ruby 2.5.3

app / javascript / packs / fileUpload.js:

import clopbox from './packs/cropbox' **#Here is problem **



 uppy.on('upload-success',(file,response) => {
// retrieve uploaded file data
const uploadedFileData = response.body['data']

// set hidden field value to the uploaded file data so that it's submitted
// with the form as the attachment
hiddenInput.value = JSON.stringify(uploadedFileData)

cropbox(imagePreview,response.uploadURL,{
  onCrop(detail) {
    let fileData = JSON.parse(hiddenInput.value)
    fileData['metadata']['crop'] = detail
    hiddenInput.value = JSON.stringify(fileData)
  }
})
})

webpacker.yml:

  # Note: You must restart bin/webpack-dev-server for changes to take effect

 default: &default
 source_path: app/javascript
 source_entry_path: packs
 public_root_path: public
 public_output_path: packs
 cache_path: tmp/cache/webpacker
 check_yarn_integrity: false
 webpack_compile_output: true

# Additional paths webpack should lookup modules
# ['app/assets','engine/foo/app/assets']
resolved_paths: []

# Reload manifest.json on all requests so we reload latest compiled packs
cache_manifest: false

# Extract and emit a css file
extract_css: false

static_assets_extensions:
  - .jpg
  - .jpeg
  - .png
  - .gif
  - .tiff
  - .ico
  - .svg
  - .eot
  - .otf
  - .ttf
  - .woff
  - .woff2

extensions:
  - .mjs
  - .js
  - .sass
  - .scss
  - .css
  - .module.sass
  - .module.scss
  - .module.css
  - .png
  - .svg
  - .gif
  - .jpeg
  - .jpg

development:
 <<: *default
  compile: true

# Verifies that correct packages and versions are installed by inspecting package.json,yarn.lock,and 
node_modules
check_yarn_integrity: true

# Reference: https://webpack.js.org/configuration/dev-server/
  dev_server:
  https: false
  host: localhost
  port: 3035
  public: localhost:3035
  hmr: false
  # Inline should be set to true if using HMR
  inline: true
  overlay: true
  compress: true
  disable_host_check: true
  use_local_ip: false
  quiet: false
  pretty: false
  headers:
   'access-control-allow-origin': '*'
  watch_options:
  ignored: '**/node_modules/**'


test:
  <<: *default
  compile: true

# Compile test packs to a separate directory
public_output_path: packs-test

production:
<<: *default

# Production depends on precompilation of packs prior to booting for 
performance.
compile: false

 # Extract and emit a css file
 extract_css: true

 # Cache manifest.json for performance
  cache_manifest: true

app / javascript / packs / cropbox.js:

 import 'cropperjs/dist/cropper.css'

import Cropper from 'cropperjs'

function cropbox(image,url,{ onCrop }) {
image.src = url

new Cropper(image,{
 aspectRatio: 1,viewMode: 1,guides: false,autoCropArea: 1.0,background: false,zoomable: false,crop: event => onCrop(event.detail)
 })
 }

export default cropbox

form.html.erb

  <%= form_with model: @blog_form,url: user_blogs_path,local: true do |f| 
  %>

  <div class="field">
  <%  f.label :title %>
  <%= f.text_field :title %>
  </div>

  <div class="field">
  <%  f.label :content %>
  <%= f.text_area :content %>
  </div>

  <div class="field ">
   <%  f.label :user_id %>
   <%= f.hidden_field :user_id,value: current_user.id %>
   </div>

   <div class ="field form-group">
   <%= f.fields_for  :photos,Photo.new do |photos_fileds|  %>

   <%= photos_fileds.label :image,class: "form-control" %>
   <%= photos_fileds.hidden_field :image,class: "upload-data",value: 
   photos_fileds.object.cached_image_data %>
   <%= photos_fileds.file_field  :image,class: "form-control  ",id: 
   "select- 
   files"%><br/>
   <div class="image-preview">
    <img id="image" src="<%= photos_fileds.object.image_url(:medium) %>" 
     height="300" class="rounded"  >
    </div>

    <% end %>

    </div>

    <%= f.submit "create",class: "btn btn-primary" %>
    <% end %>

日志:

ERROR in ./app/javascript/packs/fileUpload.js
Module not found: Error: Can't resolve './packs/cropbox' in 
'/home/master/prot/prottype2/app/javascript/packs'
@ ./app/javascript/packs/fileUpload.js 1:0-38

[Webpacker] Everything's up-to-date. Nothing to do
[Webpacker] Everything's up-to-date. Nothing to do
Completed 200 OK in 39733ms (Views: 39715.1ms | activeRecord: 0.6ms | Allocations: 1
iCMS 回答:找不到模块:错误:无法解析“ cropbox” 2

我可以通过某种方式加载作物箱, 我不知道这个解决方案是正确的解决方案 但是我会写答案以防万一

我在webpacker.yml中添加了代码

WindowManager
本文链接:https://www.f2er.com/2285149.html

大家都在问