Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将节点_模块添加到rails资源路径会导致资源编译错误_Ruby On Rails_Ruby_Asset Pipeline - Fatal编程技术网

Ruby on rails 将节点_模块添加到rails资源路径会导致资源编译错误

Ruby on rails 将节点_模块添加到rails资源路径会导致资源编译错误,ruby-on-rails,ruby,asset-pipeline,Ruby On Rails,Ruby,Asset Pipeline,如果我在Rails 5.1上只向我的config/initializers/assets.rb添加以下行,我会得到一个资产编译错误: assets = Rails.application.config.assets assets.version = '1.0' assets.paths << Rails.root.join('node_modules') 我完全不知道这个错误是从哪里来的,因为我不希望空的application.coffee/scss会编译任何东西,除了图像 事实上

如果我在Rails 5.1上只向我的
config/initializers/assets.rb
添加以下行,我会得到一个资产编译错误:

assets = Rails.application.config.assets
assets.version = '1.0'
assets.paths << Rails.root.join('node_modules')
我完全不知道这个错误是从哪里来的,因为我不希望空的application.coffee/scss会编译任何东西,除了图像

事实上,在运行了一个
assets:precompile
而不包含node\u模块之后,我只得到了以下JS和CSS文件:

$ find ./public/assets/ -name "*.js"
./public/assets//application-f78f0f583e152fa235ca51f99bab70d1aeb59675de57c78bcef18b5a2e8a5a5f.js
./public/assets//active_admin-f78f0f583e152fa235ca51f99bab70d1aeb59675de57c78bcef18b5a2e8a5a5f.js
它们都是“空的”,只包含
(function(){})

这里application.css资产完全为空。活动的管理文件中有很多CSS


资产路径中的
node\u modules
会导致上面显示的语法错误。

好的,所以链轮将贪婪地处理它在名为application的目录中找到的任何JS

我通过改变我的丑八怪来处理ES6语法发现了这一点:

config.assets.js\u compressor=Uglifier.new(harmony:true)

然后发现assets compile生成了另一个JS文件:

./public/assets//@schematics/angular/application/index-7cb879a643459c580f46b4127272b2918753e9941c074dcf27faea589ca610de.js
./public/assets//application-f78f0f583e152fa235ca51f99bab70d1aeb59675de57c78bcef18b5a2e8a5a5f.js
文件来自以下位置:

$ find ./node_modules/ | grep -E "application/.*.js$"
./node_modules//@schematics/angular/application/index.js
./node_modules//@schematics/angular/application/files/karma.conf.js
./node_modules//@schematics/angular/application/files/protractor.conf.js

好的,原来链轮将贪婪地处理它在名为application的目录中找到的任何JS

我通过改变我的丑八怪来处理ES6语法发现了这一点:

config.assets.js\u compressor=Uglifier.new(harmony:true)

然后发现assets compile生成了另一个JS文件:

./public/assets//@schematics/angular/application/index-7cb879a643459c580f46b4127272b2918753e9941c074dcf27faea589ca610de.js
./public/assets//application-f78f0f583e152fa235ca51f99bab70d1aeb59675de57c78bcef18b5a2e8a5a5f.js
文件来自以下位置:

$ find ./node_modules/ | grep -E "application/.*.js$"
./node_modules//@schematics/angular/application/index.js
./node_modules//@schematics/angular/application/files/karma.conf.js
./node_modules//@schematics/angular/application/files/protractor.conf.js

我也在这里尝试了这个建议,所有的Uglifier都可以编译它找到的所有JS:我也在这里尝试了这个建议,所有的Uglifier都可以编译它找到的所有JS: